﻿using MechJebLib.Primitives;
using static MechJebLib.Utils.Statics;
using static System.Math;

namespace MechJebLib.Control
{
    public class LQRLoop1
    {
        public double M     { get; set; } = 1;
        public double Ts    { get; set; } = 0.02;
        public double Grr   { get; set; } = 8;
        public double Tt    { get; set; } = 10;
        public double Alpha => Min(Ts * Grr, 1.0);
        public double UMin  { get; set; } = -1;
        public double UMax  { get; set; } = 1;
        public double Kb    => 1 / Tt;
        public V3     X̂ = V3.nan;

        public V3 Kstate => new V3(
            _k1.Interpolate(Grr, Ts, M),
            _k2.Interpolate(Grr, Ts, M),
            _k3.Interpolate(Grr, Ts, M)
        );

        public double Kint => _kint.Interpolate(Grr, Ts, M);

        public M3 L => new M3(
            _l00.Interpolate(Grr, Ts, M),
            _l10.Interpolate(Grr, Ts, M),
            0,
            _l01.Interpolate(Grr, Ts, M),
            _l11.Interpolate(Grr, Ts, M),
            0,
            _l02.Interpolate(Grr, Ts, M),
            _l12.Interpolate(Grr, Ts, M),
            0
        );

        private double _ei;
        private double _uDiff;
        private double _uSat;

        private readonly MultiVariableInterpolator _k1;
        private readonly MultiVariableInterpolator _k2;
        private readonly MultiVariableInterpolator _k3;
        private readonly MultiVariableInterpolator _kint;

        private readonly MultiVariableInterpolator _l00;
        private readonly MultiVariableInterpolator _l01;
        private readonly MultiVariableInterpolator _l02;
        private readonly MultiVariableInterpolator _l10;
        private readonly MultiVariableInterpolator _l11;
        private readonly MultiVariableInterpolator _l12;

        public LQRLoop1()
        {
            var grid = new MultiVariableGrid(
                new double[] { 2, 4, 8, 16, 32, 64 },
                new[] { 0.02, 0.04, 0.06, 0.08 },
                new[] { 0.0001, 0.000177827941003892, 0.000316227766016838, 0.000562341325190349, 0.001, 0.00177827941003892, 0.00316227766016838, 0.00562341325190349, 0.01, 0.0177827941003892, 0.0316227766016838, 0.0562341325190349, 0.1, 0.177827941003892, 0.316227766016838, 0.562341325190349, 1, 1.77827941003892, 3.16227766016838, 5.62341325190349, 10, 17.7827941003892, 31.6227766016838, 56.2341325190349, 100 }
            );

            _k1 = new MultiVariableInterpolator(grid,
                new[,,] { { { 3.51969126722233, 6.20552562996961, 10.7600043082156, 17.9108963379189, 27.705152555038, 39.2548799391085, 51.6668013123569, 64.6781257168479, 78.530621652942, 93.7220969421551, 110.843072996025, 130.488406813401, 153.232908581036, 179.653284310918, 210.36965497809, 246.088677678987, 287.644114993936, 336.038139079761, 392.488354055593, 458.485007228383, 535.861910559844, 626.883611227684, 734.35041511582, 861.722246208595, 1013.26250322498 }, { 0.667102030793358, 1.18567751102769, 2.10502031884232, 3.72428658932925, 6.52154866752172, 11.1092608117702, 17.8597450151139, 26.4223585945485, 36.0819760361765, 46.4784182904811, 57.7009131663653, 70.0855694228349, 84.0604877484642, 100.073920593535, 118.581358091001, 140.065354457589, 165.067855360898, 194.22567611428, 228.307938625725, 268.257474147782, 315.23847081145, 370.691962847626, 436.40013889675, 514.560378306892, 607.870597285004 }, { 0.250811749706613, 0.44597019758973, 0.792817108793577, 1.40849132369823, 2.49713151156496, 4.39948901878997, 7.6140204334845, 12.6280476021896, 19.4632820418699, 27.5919765913626, 36.5594923741721, 46.3156430520583, 57.0898670336505, 69.2291074374441, 83.1174136616064, 99.1577599447626, 117.786867772042, 139.503344655501, 164.900284141011, 194.700409325437, 229.794483133563, 271.284105898599, 320.529892237935, 379.206185349369, 449.364109111377 }, { 0.124740025045213, 0.221816217762025, 0.394415232772147, 0.701178368113657, 1.24575819890349, 2.20900125673078, 3.89388146054223, 6.74863921811074, 11.228574616957, 17.3947201617958, 24.8071009660458, 33.0677259676729, 42.1351396192113, 52.2177014144854, 63.6289221344661, 76.7206018011115, 91.8723147152545, 109.508279572154, 130.12471157343, 154.320871434115, 182.832327957704, 216.566834038254, 256.643746139169, 304.438293015243, 361.632564755778 } }, { { 1.76529229404949, 3.13253780336555, 5.53400774027231, 9.64932918000239, 16.2669299932849, 25.6678843850715, 37.1165574394609, 49.6040187760781, 62.7042511796867, 76.5728446744383, 91.686784759752, 108.657363604166, 128.124505445464, 150.721627998751, 177.097398239576, 207.966877348439, 244.169579419012, 286.726830847986, 336.899876405504, 396.252199833109, 466.718861410211, 550.685109899906, 651.076911327357, 771.46715553655, 916.202631286121 }, { 0.333612706121938, 0.593185068813689, 1.0544470526166, 1.87285191852202, 3.31797120809095, 5.83289361430923, 10.0357905341567, 16.440932070746, 24.8937895324056, 34.6574733274348, 45.2161953568233, 56.5628275561122, 69.0179446398797, 83.0438118815812, 99.1494603899694, 117.869176544994, 139.785766001129, 165.572268827353, 196.037340033653, 232.170225462743, 275.18639368341, 326.57647279037, 388.161606447351, 462.158618738176, 551.25860853757 }, { 0.125410233016136, 0.223009598609839, 0.396546186076384, 0.705017127891282, 1.2528603392444, 2.22315280372841, 3.92712479270877, 6.84603289137406, 11.5379773084824, 18.216900231129, 26.4339491788683, 35.6021820137402, 45.5451927777746, 56.4613412612356, 68.7319255452724, 82.8079553269156, 99.1785986170553, 118.386767953283, 141.063217110933, 167.964375535721, 200.010009445037, 238.321904841744, 284.26636923199, 339.503620779123, 406.0470678028 }, { 0.0623706638946857, 0.110911771460437, 0.197228206273845, 0.350704857453116, 0.623527595159854, 1.10811261064665, 1.96666048441445, 3.47596365640698, 6.06907144818213, 10.266733766257, 16.3126458229758, 23.8435380833317, 32.3255497271307, 41.5912683163372, 51.827642229775, 63.3944766066911, 76.7200431954152, 92.2769594086635, 110.599365701648, 132.313887969488, 158.172847567423, 189.087841503638, 226.165555349939, 270.748535689278, 324.463605410686 } }, { { 0.883315109099724, 1.57000481762431, 2.78756561002351, 4.93306485815236, 8.64413747636038, 14.7483132792886, 23.7632331322457, 35.1817836885651, 47.8988546662554, 61.2767836207133, 75.3614060086116, 90.6285578501421, 107.761299292005, 127.513561584105, 150.656280902654, 177.998490948673, 210.449448855164, 249.088181581609, 295.22753586299, 350.474507634414, 416.793025702234, 496.575280664167, 592.72684346132, 708.770281479928, 848.971902414107 }, { 0.166813634455712, 0.296633464501518, 0.527453405652967, 0.937713583065127, 1.66613769171278, 2.95517354306417, 5.21310975398018, 9.05305515441194, 15.1215052361158, 23.518810381267, 33.5338804151283, 44.4339404883727, 56.0704089107063, 68.7763325444816, 83.1157731686404, 99.7289016748636, 119.287113399979, 142.518451844321, 170.257388411403, 203.495277183217, 243.427836360955, 291.503600448531, 349.478153244638, 419.478186547817, 504.078836390264 }, { 0.0627056139652921, 0.111507596512492, 0.198288819347131, 0.352596936496937, 0.626926008725675, 1.11434506659242, 1.9787936221785, 3.50321527663012, 6.14584069846643, 10.5169894001232, 17.0405614245399, 25.4117204878843, 34.8685144130789, 45.0362614901728, 56.1032844501894, 68.5560529956731, 82.971727980215, 99.9556044079528, 120.161247540832, 144.334183500813, 173.355577034265, 208.283568741737, 250.396036776894, 301.238817027766, 362.682683637901 }, { 0.0311854036494038, 0.0554562889322386, 0.0986163703600172, 0.175365175619953, 0.311835431747668, 0.554458302706255, 0.985576201062908, 1.75035914733566, 3.10003354994842, 5.44483839821423, 9.34460446847023, 15.2207364519169, 22.8273872669171, 31.4449744674891, 40.7268042765533, 50.8853703368485, 62.3960944878618, 75.7955614861376, 91.6421792620114, 110.545355759526, 133.206555933714, 160.45774714851, 193.298411535223, 232.93501910173, 280.826341259553 } }, { { 0.441736659939267, 0.785446543929339, 1.39626787731722, 2.48029010109696, 4.39583839505582, 7.73665446470084, 13.350605814344, 21.9902934662588, 33.4722699356767, 46.6239698244287, 60.5001153058471, 75.0054299894893, 90.6927356994824, 108.435747119842, 129.18990120155, 153.900033192323, 183.538812740041, 219.194553828061, 262.153777364576, 313.970394864643, 376.531016775791, 452.126062734103, 543.533403061446, 654.119456571318, 787.962160239871 }, { 0.0834076188400349, 0.148321239665888, 0.263752043106699, 0.468999170020798, 0.83386736666973, 1.48203973273167, 2.63095477607029, 4.65356936719074, 8.14212963070947, 13.8358110326456, 22.1003249227752, 32.2876422919141, 43.3592042096311, 55.0095844486962, 67.6966848677698, 82.1654411183521, 99.1749897320788, 119.469927802011, 143.843167413024, 173.203437909362, 208.63076705043, 251.426196474018, 303.16346548081, 365.748091124666, 441.487707286068 }, { 0.0313528573218251, 0.055754081330414, 0.0991460014417296, 0.17630741809015, 0.313513309413096, 0.557455000466573, 0.990977841361463, 1.7603695932864, 3.12004466496011, 5.49176041643939, 9.47667922601624, 15.5875281612703, 23.5858155107181, 32.5299855778358, 41.9490843693969, 52.1657721945321, 63.7936908601078, 77.4482081128392, 93.7286169017195, 113.274449867566, 136.819155009575, 165.233327794912, 199.564076363839, 241.076518966135, 291.301429467462 }, { 0.0155927083569186, 0.0277281811993901, 0.0493083917434101, 0.0876837493497213, 0.1559242467736, 0.277265860986119, 0.492994244399449, 0.876333687932665, 1.55641755523992, 2.75691655403236, 4.84385869841431, 8.31722606820548, 13.531251924512, 20.1467144376552, 27.3956701119899, 35.0672301305478, 43.5230001242564, 53.2595095801317, 64.7554218177293, 78.4914117676545, 94.9966092137554, 114.887158970558, 138.898338408241, 167.915749811734, 203.00958739085 } }, { { 0.22087704251113, 0.392772249498287, 0.698409063281207, 1.24168694744535, 2.20649814538871, 3.9150152233077, 6.91385342477135, 12.0417848270946, 20.2332659632243, 31.6645709945753, 45.1084704657099, 59.1873107128127, 73.7255446265509, 89.5468245787391, 107.772553756983, 129.453768538573, 155.564203955929, 187.119875846382, 225.287618078801, 271.463740347471, 327.33928291144, 394.966445419106, 476.834775358407, 575.962463126046, 696.007031174714 }, { 0.0417038824504678, 0.0741610305059819, 0.131878330804453, 0.234512568519418, 0.417006652958745, 0.741429459479618, 1.31776755116451, 2.33943509713034, 4.13843998997991, 7.24272124467779, 12.3072120994202, 19.5977501074912, 28.3369355310422, 37.5175222575685, 47.1192767357653, 57.7774785618429, 70.1873015484648, 84.9730282761585, 102.750521304227, 124.199900390776, 150.118396216291, 181.462079868823, 219.385960104912, 265.288252892715, 320.862410289665 }, { 0.0156764319922108, 0.0278770593983473, 0.0495731060636948, 0.0881543014071927, 0.156759985373489, 0.278746222304825, 0.495594066893866, 0.88077367576335, 1.56329181268451, 2.76355438474973, 4.82680037829229, 8.1599270085758, 12.8705041507209, 18.4195668972869, 24.2573427286827, 30.4601422804057, 37.4279894208822, 45.5727023766023, 55.276192253677, 66.9309730304068, 80.9794939946977, 97.943619021337, 118.449722741325, 143.25414792281, 173.271962579262 }, { 0.00779635438733926, 0.0138640917743051, 0.024654202477021, 0.0438419118185628, 0.0779623322494691, 0.138634104805217, 0.246503722129222, 0.438203892212409, 0.778415951425765, 1.3796030359067, 2.42802904400875, 4.18794822000999, 6.87678114380838, 10.360989468376, 14.2134255844234, 18.2749219624347, 22.7278688874758, 27.842169936553, 33.8762253148817, 41.0858899638926, 49.7505179213531, 60.1943135889776, 72.8037116500049, 88.0439788643635, 106.477305935829 } }, { { 0.110439315081003, 0.196390588429505, 0.34922962692808, 0.620984491294993, 1.1040402363377, 1.96192432039131, 3.48120640990031, 6.14840729313903, 10.7102088945544, 17.983628367002, 27.9961622249881, 39.3628322557676, 50.8926798516853, 62.8867205551396, 76.3447144224011, 92.2135125273139, 111.295608631722, 134.372174028435, 162.312573622376, 196.145931227401, 237.114556702292, 286.724851490371, 346.804081029523, 419.567743114229, 507.700985060642 }, { 0.0208519435605312, 0.0370805283851947, 0.0659392392482922, 0.117256699496147, 0.208505660984577, 0.370727848017406, 0.658957374658346, 1.1701284222068, 2.07147851125817, 3.63321027052052, 6.2083305245972, 9.99029225722131, 14.6172348460755, 19.5053211132226, 24.5890572142895, 30.2021422035361, 36.7226753049714, 44.4865859968377, 53.8209378243723, 65.0844112535983, 78.6963246767573, 95.1590960170442, 115.079525609114, 139.192140340365, 168.386562331334 }, { 0.00783821567223265, 0.0139385278778982, 0.0247865427901283, 0.0440770931119832, 0.078379668856726, 0.139371290681415, 0.247786806115161, 0.44032950129069, 0.781326571691157, 1.38003450522231, 2.40444694123934, 4.04071571599865, 6.30999152152027, 8.94257070453283, 11.7082810067757, 14.6626481463392, 17.9939154507937, 21.8933684773981, 26.5405792703019, 32.1220229602211, 38.8489236613264, 46.9708664820584, 56.7875960709925, 68.6611136411677, 83.0294047869294 }, { 0.00389817706786374, 0.00693204517971065, 0.0123270972603123, 0.0219209335386469, 0.0389810403326407, 0.0693163451498312, 0.123247886167312, 0.21907963402516, 0.389083219351558, 0.689112383542657, 1.2103460117703, 2.07637439096439, 3.37201768367236, 5.0096795779678, 6.80160666075687, 8.69946018449971, 10.7932740889891, 13.2052697536641, 16.0534490788575, 19.4566089540137, 23.545708468627, 28.473331670574, 34.4216021879005, 41.6098923547967, 50.3033041304594 } } }
            );

            _k2 = new MultiVariableInterpolator(grid,
                new[,,] { { { 0.238430708211284, 0.42076602661916, 0.731603396261605, 1.22687556652722, 1.92936056327381, 2.81558449571926, 3.87424868028672, 5.15005153528673, 6.74470411071401, 8.81189526409501, 11.5580104473036, 15.2495893841773, 20.2305592285447, 26.9519294956929, 36.0154168051124, 48.2338986919101, 64.7151289079057, 86.979590128441, 117.129012821765, 158.090058379493, 213.969263597759, 290.572137335333, 396.163428893261, 542.580286085554, 746.86038464082 }, { 0.0722874973667766, 0.128489764552812, 0.228168632178105, 0.403968656658549, 0.708895407605016, 1.21489810047295, 1.98203192489862, 3.01766003077204, 4.31314060971778, 5.91635930008245, 7.95003002101445, 10.6045041223395, 14.1372533092177, 18.8853914812104, 25.2931667634835, 33.956156035674, 45.6854910331072, 61.5993908385863, 83.2546397611574, 112.837393866068, 153.441793372338, 209.477700339174, 287.267354771371, 395.917665761497, 548.59451789694 }, { 0.0363548836278889, 0.0646438549688508, 0.114925142966646, 0.204202608953773, 0.362203526428983, 0.63906274593726, 1.11073406945162, 1.86297502455234, 2.94165624471819, 4.34714349115603, 6.11498777137296, 8.36543358548838, 11.3012455206021, 15.2046438781037, 20.4509942397597, 27.541455154096, 37.1562472725263, 50.2333024981611, 68.0821535410562, 92.5493491287536, 126.259793757713, 172.96948211438, 238.080983493485, 329.396353797422, 458.216680765902 }, { 0.0224057721614945, 0.0398427664487555, 0.0708461921975264, 0.125954107629093, 0.223812224475545, 0.397057901532866, 0.700942809732159, 1.22014364132893, 2.05364667989666, 3.26194484437708, 4.85669834062509, 6.88678029488965, 9.49524784087342, 12.9189900047067, 17.488368984703, 23.6478212314193, 31.999587760357, 43.3731032642551, 58.9274090046954, 80.3003397499403, 109.825973522012, 150.851970126312, 208.202787014708, 288.855846093444, 402.92894095395 } }, { { 0.119544354371656, 0.212181965031523, 0.375112981800109, 0.655471191377079, 1.11159855065425, 1.7786532866995, 2.64041869947175, 3.67634815493044, 4.9181077914919, 6.45814455464577, 8.44474078417307, 11.082589870308, 14.640831858458, 19.4722107638625, 26.0478790206236, 35.0113605741949, 47.2569435432322, 64.0425523281699, 87.1534254219662, 119.140779698435, 163.670437081281, 226.032078592408, 313.883001972249, 438.334664549803, 615.54108804151 }, { 0.0361495160301733, 0.0642772590382062, 0.114265406425739, 0.202985716773758, 0.359799303638315, 0.63352647999278, 1.09508107508153, 1.81541506509993, 2.81757509814379, 4.08862448599947, 5.65985776030588, 7.64370401736511, 10.230542578936, 13.6882879324893, 18.3774159269107, 24.7858858683395, 33.5879645464722, 45.7326118301055, 62.5720153543615, 86.0479690689005, 118.962880211661, 165.374741365582, 231.17369349589, 324.924740745009, 459.100757324079 }, { 0.0181779757238836, 0.0323249289207832, 0.057479432756859, 0.102195820739447, 0.181627982265131, 0.322400753416918, 0.57010810233846, 0.99698890714393, 1.69489969093423, 2.73015310420985, 4.1106733692625, 5.85549536367942, 8.07155472611131, 10.9650688247837, 14.8393807687345, 20.1119133432247, 27.3574839222376, 37.3816266075017, 51.3306056725778, 70.8513963532075, 98.3237277626598, 137.1976933633, 192.486351840208, 271.485841430898, 384.82936104588 }, { 0.0112029835595488, 0.0199219313356033, 0.0354261774239792, 0.0629943648520244, 0.112003166768092, 0.199069598424559, 0.353424356463178, 0.625312099799333, 1.09525187002208, 1.86906176094862, 3.03126089745256, 4.60377221503098, 6.61760521147474, 9.20423960486716, 12.6131212957272, 17.2124296662032, 23.5148846238339, 32.2368464086114, 44.3943685383064, 61.445387131466, 85.4962048657694, 119.601555277083, 168.20213047834, 237.764099385742, 337.715195827515 } }, { { 0.059812581799969, 0.106316640995678, 0.188798694136642, 0.334287992744728, 0.586715065111098, 1.00565952377799, 1.6389724746092, 2.48265909983913, 3.50914981332704, 4.73641823495836, 6.25066184697703, 8.2043102166469, 10.8181880025922, 14.3926577322656, 19.333354711793, 26.1991079425906, 35.7777677623813, 49.1972682177202, 68.0856811465285, 94.8028735372614, 132.777680856381, 187.000310045927, 264.742735318124, 376.613699041584, 538.104626924477 }, { 0.0180754387341686, 0.0321424559865049, 0.0571541944433041, 0.101613242574664, 0.180568416385447, 0.32038597319581, 0.565825022545599, 0.985951597972961, 1.66205443128215, 2.63921212177867, 3.90731169272401, 5.48151487522542, 7.47134481597537, 10.0893305717812, 13.6503970087622, 18.5900744852107, 25.5121405920683, 35.2708907170954, 49.0940688541151, 68.7604073156568, 96.8566190864918, 137.151747914334, 195.14447753512, 278.864659781991, 400.04802913909 }, { 0.00908904880435395, 0.0161628071406244, 0.0287416429826666, 0.0511087368522755, 0.0908747380534347, 0.161539608378672, 0.28692083275662, 0.508332959423629, 0.893802203343236, 1.53946196951108, 2.53538850778954, 3.90875740219803, 5.66606586564415, 7.90833143924421, 10.8718872677683, 14.9234163666772, 20.5763487057645, 28.5485168591412, 39.8625252054648, 55.9944897342248, 79.0888849143781, 112.270370802598, 160.098914255565, 229.235919729626, 329.420366553945 }, { 0.00560150251008958, 0.00996102600757533, 0.0177134280056205, 0.031499090025958, 0.0560123037077079, 0.099594961708272, 0.17704834244745, 0.314509254236373, 0.557442780691537, 0.9813527431692, 1.69561047170896, 2.80991709489396, 4.3685064235511, 6.39032259560007, 9.00688811780888, 12.5114547700717, 17.3507600900753, 24.151052580479, 33.7961698809324, 47.5546927078846, 67.2654059597617, 95.6056682713605, 136.482195000835, 195.602456449639, 281.311706822483 } }, { { 0.0299110686856569, 0.0531851456214409, 0.09454944843417, 0.167975090140535, 0.297815789705847, 0.524763934835138, 0.908652052063175, 1.51021562058614, 2.34427209578013, 3.38059855504678, 4.6238075651986, 6.16395413714835, 8.18276838653537, 10.9543426694489, 14.855825356565, 20.4024954932486, 28.3172369221991, 39.6377782006732, 55.8705036352172, 79.2113059184372, 112.866348573822, 161.520833714825, 232.025692261482, 334.404342967184, 483.329183414674 }, { 0.00903779430765451, 0.0160716493798661, 0.0285794662275028, 0.0508199320817824, 0.0903588635960044, 0.160609349852972, 0.285194757595116, 0.504871165719041, 0.885625099494495, 1.51604865219732, 2.46640037567991, 3.7395926266318, 5.34033129953197, 7.39343890958808, 10.1654324399303, 14.0473679876023, 19.574831048844, 27.4972204958629, 38.8898183666737, 55.3144277975826, 79.0498771056081, 113.426927798302, 163.317900119518, 235.854110554089, 341.477934356104 }, { 0.00454453056912216, 0.00808143824911834, 0.0143710164956044, 0.0255554648561602, 0.0454435318699967, 0.080804410082403, 0.143654130752762, 0.255240337934892, 0.452681735397082, 0.798420582819217, 1.38617111962537, 2.31757749204635, 3.63683286751423, 5.349345031926, 7.57083847496214, 10.5833308801267, 14.8100641441509, 20.8362445919452, 29.4876527628372, 41.9543182841449, 59.9676288861856, 86.0557671188943, 123.915868722719, 178.958655956035, 259.106758780798 }, { 0.00280075223260073, 0.00498051850097293, 0.00885674491532765, 0.015749718839323, 0.0280071292175461, 0.0498029745987593, 0.0885550226617269, 0.157427372357683, 0.279679807494596, 0.495847888864687, 0.873614295344244, 1.51234648044133, 2.51372402959914, 3.91789187106204, 5.75016783199658, 8.16946504665236, 11.4957556406626, 16.1917307105567, 22.9035645227911, 32.5534456637276, 46.4771576483475, 66.6217561741276, 95.8324029245405, 138.27138537491, 200.031901992899 } }, { { 0.0149560605580207, 0.0265955309389046, 0.0472913412874294, 0.0840806764128102, 0.149426125829986, 0.265203246227756, 0.46875631092061, 0.818603491813835, 1.38578831820606, 2.20833159390062, 3.26077528448252, 4.54021496995445, 6.1629266606268, 8.37014664522266, 11.5067307888015, 16.0340825738199, 22.5901659514831, 32.0885457875893, 45.8581588214863, 65.8416789361539, 94.8827422819026, 137.14565702335, 198.730507206584, 288.575369395365, 419.779985710042 }, { 0.00451890398124634, 0.00803586308265623, 0.0142899489997472, 0.0254111798411436, 0.0451862536616432, 0.0803429690258882, 0.142811521525719, 0.253618959030841, 0.449123269606546, 0.788565587260006, 1.35264913622763, 2.20641055129066, 3.35305637263649, 4.81556755512303, 6.75428736741644, 9.45728599340062, 13.3222308590996, 18.8980624834579, 26.9682562928953, 38.6701677490479, 55.6647798112425, 80.3825558468824, 116.382613433673, 168.87900584552, 245.512584037133 }, { 0.00227226569267095, 0.00404072141951554, 0.00718552115313032, 0.0127778049972248, 0.0227221739706193, 0.040404498693405, 0.0718399475387895, 0.127692327731691, 0.226741692955822, 0.40138039866484, 0.703997755324524, 1.20455443395032, 1.95749267764225, 2.97091379707074, 4.28412618374857, 6.04982292756447, 8.52135318230444, 12.0505041316223, 17.1307127131928, 24.4713490367365, 35.1041365090081, 50.5360943562771, 72.9720657562422, 105.640262526664, 153.269432089363 }, { 0.00140037614755949, 0.0024902594262688, 0.00442837344615863, 0.00787486497827536, 0.0140035958654829, 0.0249016630389845, 0.044278499057858, 0.078719231181124, 0.139870919615998, 0.248095468299483, 0.43772345074627, 0.760614037152495, 1.27404243837037, 2.00552734802327, 2.96574816168827, 4.23125694073074, 5.96821258009326, 8.42010766735113, 11.9266560867808, 16.9720607413014, 24.2574172023889, 34.8046554094353, 50.1072553994738, 72.3503681759035, 104.73323460614 } }, { { 0.00747807822398412, 0.0132980350644124, 0.023647186342004, 0.0420488554651013, 0.0747608501546652, 0.13286843450216, 0.235845516357905, 0.417018494195148, 0.72895702812331, 1.23626795052782, 1.97304555729493, 2.91701375707071, 4.09229896650086, 5.65531025172439, 7.86453506817272, 11.0636627755082, 15.720878148076, 22.5032163912297, 32.3804323145718, 46.7710564469059, 67.7532814589365, 98.3729401782477, 143.09485400963, 208.464930729153, 304.081673833679 }, { 0.0022594522089435, 0.00401793276902209, 0.00714498140354976, 0.0127056287400652, 0.0225933450804229, 0.0401727109597792, 0.0714126423131268, 0.126847908130864, 0.224773074022843, 0.395395426512231, 0.681507981961707, 1.12175889718834, 1.72226719300889, 2.49076100207746, 3.50636433007639, 4.91975844600881, 6.94043618812847, 9.85702757032877, 14.0809784243008, 20.2093793236117, 29.1142133506865, 42.0715359564992, 60.9501617580945, 88.4881275970046, 128.698163382607 }, { 0.00113613280665844, 0.00202036048663714, 0.00359275932187418, 0.00638889544317583, 0.0113610473133438, 0.0202020263201173, 0.0359187207581376, 0.0638391382094443, 0.113331699543189, 0.200476262083482, 0.350894976624923, 0.597377357133197, 0.962610882615026, 1.44879405689794, 2.07830365735999, 2.92672850069474, 4.11541878642204, 5.81245046104683, 8.25395030948991, 11.7796311016556, 16.8836547190143, 24.2877993558317, 35.0479586589977, 50.7099608143515, 73.5379644721076 }, { 0.00070018805495288, 0.00124512960726482, 0.00221418612773621, 0.00393742914133699, 0.0070017791077062, 0.0124507256768233, 0.0221386546567884, 0.0393562761444367, 0.0699167825678003, 0.123944477682298, 0.218310627005033, 0.377642613262427, 0.62676133716064, 0.975096213784331, 1.4292146035634, 2.02904561415958, 2.85398645508912, 4.01861426044126, 5.68297819068968, 8.0755429720593, 11.5272581166516, 16.5205174227694, 23.7602088860942, 34.2775116788778, 49.5819404107091 } } }
            );

            _k3 = new MultiVariableInterpolator(grid,
                new[,,] { { { 59.3794008060327, 59.0686879276433, 58.1664681830448, 55.8895550266359, 51.4560628373446, 45.1811397020256, 38.3563866839854, 32.0533246426146, 26.7113128318567, 22.3518298083052, 18.8254097277109, 15.9514721071771, 13.5763435153331, 11.5862088654575, 9.90105899046842, 8.46451318540242, 7.23544949710232, 6.18247033927322, 5.28055766375086, 4.5090963513039, 3.85067858980991, 3.29034198629559, 2.8150552894235, 2.41335787631763, 2.07510600288344 }, { 31.3841197030953, 31.3744477666591, 31.3440332481327, 31.2495195902517, 30.9660598413128, 30.1936381450514, 28.4807055849378, 25.6830908401704, 22.2914884071001, 18.9399694487077, 15.9761928524217, 13.4821133158941, 11.4136857790938, 9.69382031301171, 8.25181844486254, 7.03309807715862, 5.99748512292843, 5.11510675136898, 4.36294553548562, 3.72253084786127, 3.17850718159133, 2.71776027359791, 2.32887910251206, 2.00182217352989, 1.72771127159321 }, { 21.6431752913351, 21.6419571029361, 21.638108932472, 21.6259805463073, 21.5880270573751, 21.47182229305, 21.1375636840714, 20.3112443475196, 18.7505583554693, 16.6008183718643, 14.2914739143737, 12.1478541445197, 10.2922935638423, 8.72711968179414, 7.41272183952016, 6.30510296296278, 5.367577908917, 4.57177883972923, 3.89577101320402, 3.32208803384785, 2.83632107110149, 2.42622154964272, 2.08115857143306, 1.79179949444627, 1.5499237498923 }, { 16.6219278665847, 16.6216526290501, 16.6207825289506, 16.6180338008121, 16.6093691311622, 16.5822407889103, 16.4990518198896, 16.2587461567953, 15.6591064003998, 14.5101939110949, 12.9037942579354, 11.1561555465255, 9.51594337350158, 8.08147753195308, 6.86058125917779, 5.82853633131871, 4.95574973434285, 4.21650551002916, 3.59008978425489, 3.05981949550557, 2.61191580059882, 2.23468175351448, 1.91798569694729, 1.65295861663107, 1.43181991498382 } }, { { 29.245932317484, 29.2073940291809, 29.088189802691, 28.7354257172191, 27.8051819819068, 25.8598786410918, 22.8935668625188, 19.4913802632019, 16.2553886532822, 13.4763483593117, 11.2016221601924, 9.36784350478136, 7.88384229856502, 6.66793710918313, 5.65843661453878, 4.81183444856223, 4.09761341829298, 3.49361201005053, 2.98287474784026, 2.55174783003753, 2.18878760794894, 1.88415006102008, 1.62925284017075, 1.41658571620759, 1.2395954478424 }, { 15.19378294038, 15.1926637107021, 15.1891290004597, 15.1779970397115, 15.1432439824047, 15.0375882260015, 14.739408331018, 14.0314697524869, 12.7700329231669, 11.1269287509728, 9.43396627922947, 7.91041054216436, 6.62556260807793, 5.56707877515233, 4.69668446472401, 3.97641128174708, 3.37624521193188, 2.87392506786744, 2.45278878914096, 2.09985354901387, 1.80455491330604, 1.55801750566764, 1.35265460236554, 1.18194419895042, 1.0402886862009 }, { 10.3218067587685, 10.3216712321982, 10.3212427609155, 10.319888828279, 10.3156174080381, 10.3022098186257, 10.2607767497225, 10.1384860435061, 9.81802583437423, 9.15498363486396, 8.1552668679342, 7.01606088544141, 5.93058248384795, 4.98703270953871, 4.19752499856388, 3.54367919079496, 3.00166240780651, 2.55084029709467, 2.17502323327924, 1.86156408314903, 1.60030979526463, 1.38287288499567, 1.20219520592292, 1.05229072227158, 0.928079853036997 }, { 7.81101391796064, 7.81098436522112, 7.8108909176848, 7.81059547487579, 7.8096618445302, 7.80671584450969, 7.79746312860686, 7.76881781376262, 7.68383238003737, 7.45836408966261, 6.98196300179674, 6.24699202657807, 5.39505024205319, 4.57450556252921, 3.85596507198409, 3.25141245505776, 2.74901516847183, 2.33213405586417, 1.98582210924079, 1.69791869609114, 1.45861564886424, 1.25987430208128, 1.09500205199202, 0.958379097623072, 0.845275849989927 } }, { { 14.1298699337015, 14.1253839099868, 14.1112716457631, 14.067365424049, 13.9352284771418, 13.5720183933342, 12.7536059429811, 11.3924678990967, 9.72439245966308, 8.0787844728095, 6.64584923745608, 5.47441074355968, 4.54034205299139, 3.79664450800043, 3.19832185638618, 2.71066554499311, 2.30910664877449, 1.97640597065588, 1.70000302258628, 1.47024838702463, 1.27938700413604, 1.12100585407647, 0.989728347750665, 0.881028177097157, 0.791098262503827 }, { 7.09709484278862, 7.09697473153263, 7.09659501324523, 7.09539530574625, 7.09161212600899, 7.07975360301765, 7.0432625264502, 6.93683906639041, 6.66568028644845, 6.13048567022145, 5.36558860698037, 4.53398957792387, 3.7730696248343, 3.13614497733112, 2.62154569389196, 2.20798499993714, 1.87324403690484, 1.59986869099982, 1.37514224273598, 1.18972117677273, 1.03647541921061, 0.909758481774916, 0.804984589026397, 0.718378144961306, 0.64681192587065 }, { 4.660928389672, 4.66091470016829, 4.6608714122608, 4.66073454484896, 4.66030194167084, 4.65893602151266, 4.65463737080814, 4.64124708539902, 4.60080577455681, 4.48865558996843, 4.23194106011761, 3.79833477304182, 3.26483370435754, 2.74250047328416, 2.2912850986757, 1.92139772958462, 1.62197061595431, 1.37876810378, 1.17994631307788, 1.01658322034437, 0.881954277345039, 0.77084256816648, 0.679086196366793, 0.603302419768751, 0.540713517587412 }, { 3.4055124612104, 3.40550958184775, 3.40550047662865, 3.40547168464659, 3.40538064889648, 3.40509289339776, 3.40418417640424, 3.40132294269274, 3.39239638920991, 3.36531323703027, 3.28931939307392, 3.11139985651244, 2.80271854635386, 2.41605331087329, 2.03468410798387, 1.70368633627309, 1.43057073823235, 1.2079037743249, 1.02605472720861, 0.876913219060195, 0.754195819722042, 0.65302682622741, 0.569542769928145, 0.500624524379787, 0.443723658276809 } }, { { 6.56575126809309, 6.56526938652951, 6.56374726660896, 6.5589510462599, 6.54395277847993, 6.49812942051478, 6.36709735077471, 6.04751841290684, 5.45766455044504, 4.67015987266099, 3.85824427070257, 3.14596381161466, 2.57335259548852, 2.12954271877579, 1.78632669356793, 1.51678189318669, 1.30113768219981, 1.12613653678147, 0.982856896466713, 0.86498649293128, 0.767793758810849, 0.687570793103115, 0.6213310332518, 0.566633403723807, 0.521468700852075 }, { 3.04856981066013, 3.04855816113237, 3.04852132416979, 3.04840485622554, 3.04803675969031, 3.04687480546932, 3.04322091300557, 3.03186658001374, 2.99781893892223, 2.90515737298412, 2.70108423330089, 2.37545949125913, 1.9996483807374, 1.65373975999743, 1.3701584449936, 1.14626022061342, 0.969143256780873, 0.827127771911182, 0.711856146301657, 0.617540186639157, 0.54002093248806, 0.476158045846853, 0.423486074414047, 0.380021555978908, 0.344147171150042 }, { 1.83046672570121, 1.83046535327514, 1.83046101332636, 1.83044728965422, 1.8304038961015, 1.8302667187068, 1.82983337572879, 1.82846750503705, 1.82419241543408, 1.81109622364087, 1.77339607415263, 1.68041950267319, 1.50818593101813, 1.28331183944105, 1.06066523639445, 0.870333044395231, 0.715764500837862, 0.591102150886889, 0.489940588559121, 0.407283551914805, 0.339427020859856, 0.283568878284775, 0.237521439907936, 0.199534515248115, 0.168186612975778 }, { 1.20275673187089, 1.20275637606019, 1.20275525089041, 1.20275169283302, 1.20274044168394, 1.20270486658764, 1.20259240984766, 1.20223720567162, 1.20111808336085, 1.19761978442834, 1.18694472641781, 1.15654603381779, 1.08341927205704, 0.953232394365318, 0.78964219579244, 0.63050405944679, 0.493919073522065, 0.381517804524894, 0.289723644835525, 0.214598491020912, 0.152912439343002, 0.102140133367475, 0.0602915773617751, 0.0257723092349903, -0.00271201681548858 } }, { { 2.78296553819714, 2.78291890297414, 2.78277146298142, 2.78230555176098, 2.78083555020492, 2.776220054703, 2.76194498894283, 2.71971941934672, 2.6086424734893, 2.37888527962792, 2.03975790737817, 1.67515299580852, 1.35895944585731, 1.11313152996913, 0.927716966924256, 0.78595639322877, 0.674725962177176, 0.585543323437475, 0.513047167921349, 0.45366159392282, 0.404822130337365, 0.364577069270762, 0.3313829715177, 0.303992656212662, 0.28138701899274 }, { 1.02428694509019, 1.02428553074709, 1.02428105827021, 1.02426691574407, 1.02422220002235, 1.02408086517883, 1.02363461059548, 1.02223023982689, 1.01785596432249, 1.00465037458154, 0.968124772782181, 0.88561564717674, 0.75194886802797, 0.599468098324538, 0.462045285483924, 0.350141616410166, 0.26101665373708, 0.189567791915111, 0.131662191473528, 0.0843497363007199, 0.0455033459773973, 0.0135233774928011, -0.0128397578316911, -0.0345872287245531, -0.0525329553324637 }, { 0.41523353033545, 0.415233206268476, 0.415232181484294, 0.415228940887036, 0.415218693768374, 0.415186295025963, 0.415083896088541, 0.414760629795651, 0.41374380894571, 0.410581509818257, 0.401078064312249, 0.375104158681893, 0.31780761272986, 0.227636424739378, 0.126333053597374, 0.0343355417791079, -0.0421562510287334, -0.10435174073958, -0.154947004050779, -0.196310009690581, -0.230265359231899, -0.258211924321613, -0.281246151764468, -0.300245723153166, -0.315923169409704 }, { 0.101378381964294, 0.101378238717722, 0.101377785733111, 0.101376353283199, 0.101371823618068, 0.101357500945358, 0.101312222534975, 0.101169178024044, 0.100718209839373, 0.0993057292755968, 0.0949697938727195, 0.0824181419642903, 0.051105194615089, -0.00776038885839861, -0.0855339188837891, -0.163484258561673, -0.231281288822495, -0.287356927842303, -0.333232224271119, -0.370797231575409, -0.401646035905744, -0.427036766940737, -0.447964020748962, -0.465225449777407, -0.479468659025981 } }, { { 0.891490960493343, 0.89148535321127, 0.891467622535267, 0.891411564282734, 0.891234403109985, 0.890675273273629, 0.888918088821159, 0.8834679978682, 0.867219030276219, 0.823719655283879, 0.731693059466786, 0.595393663998272, 0.45275879390282, 0.332811612106161, 0.240115529507752, 0.168901864408873, 0.113048168356198, 0.0683199573647463, 0.0319970203831553, 0.00226349673563019, -0.0221785494058985, -0.0423134009287743, -0.0589172969357703, -0.0726162769692388, -0.0839212356775578 }, { 0.0121435377704068, 0.0121429716325219, 0.0121411813703902, 0.0121355202926367, 0.0121176206752335, 0.0120610399250339, 0.0118823435983286, 0.0113195212442649, 0.00956199544603625, 0.00421575009429876, -0.0108736053266232, -0.0464116803149552, -0.10732835747136, -0.180184580999417, -0.247616156162809, -0.303174959471575, -0.347629618941788, -0.38332841440665, -0.412277369603503, -0.435934631712066, -0.455359380910257, -0.471350536345816, -0.484532853895258, -0.495407039141181, -0.50438016405803 }, { -0.292383251115444, -0.292383448357652, -0.29238407208845, -0.292386044458527, -0.292392281245126, -0.292411999744528, -0.292474315633263, -0.292670982022079, -0.293288991400348, -0.295205283707877, -0.300914278164668, -0.316175796179631, -0.348464622447545, -0.396793141002126, -0.449089918350445, -0.495670810108238, -0.534087693986584, -0.565228959572641, -0.590534792787048, -0.611215968893426, -0.628191961113385, -0.642163840970555, -0.653680026366678, -0.663179247268932, -0.671017639671815 }, { -0.449310818671725, -0.449310911169048, -0.449311203670437, -0.449312128630287, -0.44931505349787, -0.44932430162153, -0.449353535562272, -0.449445869643353, -0.449736743849433, -0.450645630058843, -0.453415743240962, -0.461278155270595, -0.480059254148502, -0.513161798817514, -0.554395470385104, -0.594307754763348, -0.6284906247004, -0.656599066681077, -0.679548346362324, -0.698328916631474, -0.713749691005299, -0.726442253029085, -0.73690407321333, -0.745533702151218, -0.752654675257484 } } }
            );

            _kint = new MultiVariableInterpolator(grid,
                new[,,] { { { -0.449055585738769, -0.791092603858917, -1.36845668733266, -2.26345725354124, -3.45183878593525, -4.76781796225442, -6.03798682714086, -7.17208975891234, -8.14591258800693, -8.96862152402876, -9.6629357028653, -10.2538168799501, -10.7625457331469, -11.2049565151756, -11.5921381723812, -11.9318884066847, -12.229979363142, -12.4909955729693, -12.7188160443564, -12.9168708976785, -13.088273693097, -13.2358906878995, -13.3623789690546, -13.4702079535431, -13.5616700270004 }, { -0.102709989765237, -0.18254142189622, -0.324019087182276, -0.572935820151727, -1.00149598237704, -1.69753366548827, -2.69607110274387, -3.89473037274345, -5.11960321112403, -6.25390109795871, -7.25626357967509, -8.12739002169893, -8.88417701689922, -9.54592743545702, -10.1285731801971, -10.6436398606513, -11.0992241863832, -11.5012914325385, -11.8546515920074, -12.163544791568, -12.4319440905719, -12.6636886869955, -12.8625232876934, -13.0320868232793, -13.1758748047393 }, { -0.0423944630932683, -0.0753809909246521, -0.134002347829534, -0.238035194639324, -0.421855795757017, -0.742364882196719, -1.28036675080165, -2.10436596626215, -3.18045028655016, -4.35845354531872, -5.49720682432735, -6.53151087490911, -7.44933413269179, -8.2606465873757, -8.98016232073305, -9.62045274170963, -10.1906156739884, -10.6970996141603, -11.144862802375, -11.5382289948707, -11.8813707936592, -12.1785187522047, -12.4340011288873, -12.6521895509248, -12.8374005762972 }, { -0.0223544509057978, -0.0397511604293974, -0.0706813658474562, -0.125650186161097, -0.223211172785512, -0.395652136701994, -0.696613122505761, -1.20315846456457, -1.98360331481352, -3.01222434894343, -4.14966142167403, -5.26044111367395, -6.28100841879434, -7.19838566028239, -8.01952362937993, -8.75517732013034, -9.41424583254957, -10.0030773948911, -10.5263729191917, -10.9881759114998, -11.3925130067888, -11.7436833464524, -12.0463031735065, -12.3052089230943, -12.5252968753034 } }, { { -0.225287248537785, -0.39969695125333, -0.705680869840553, -1.22818741479529, -2.05993848162652, -3.21167658946697, -4.54024133520355, -5.85614582368191, -7.04579904995852, -8.07160526580375, -8.93706547561556, -9.66354883083571, -10.2769763415792, -10.8004305594705, -11.2514312173873, -11.6422896262633, -11.9816165472605, -12.2757657298237, -12.5298266660225, -12.7481997161385, -12.9348883844412, -13.0936240041923, -13.2278993554707, -13.3409587978895, -13.4357742466 }, { -0.0513655678017344, -0.0913300630212723, -0.162341473363105, -0.288302725191814, -0.510542454221018, -0.896337997736716, -1.53630520187699, -2.49225245725506, -3.69703396474551, -4.97212726682575, -6.17125554310405, -7.23239644712266, -8.14800079961744, -8.9338646032537, -9.61123077111478, -10.1985778359108, -10.7095889149468, -11.1540404498774, -11.5393193180631, -11.8715913381951, -12.1564590990859, -12.3992361119596, -12.6049993588489, -12.7785424583165, -12.9243045576475 }, { -0.0211980600328502, -0.0376951528551027, -0.067027337234012, -0.119164244417112, -0.211744145410006, -0.375629754154688, -0.662976766621921, -1.15281516565742, -1.9293657821596, -2.99723262014218, -4.22037860412611, -5.42834220605364, -6.52603149678607, -7.48842911210561, -8.32378141687281, -9.04960690467798, -9.68210256110618, -10.23354198268, -10.7130416076612, -11.1279461058832, -11.4848096454702, -11.7898589217253, -12.04910709562, -12.2682995438135, -12.4528120782445 }, { -0.0111773576093473, -0.0198763233119921, -0.0353448603687511, -0.0628485615296746, -0.111737151134333, -0.198558757764827, -0.352305047952439, -0.622163641953021, -1.08359174097119, -1.82037162663294, -2.84550024056376, -4.03331783480515, -5.21497552174847, -6.29386991513331, -7.24451021411513, -8.07417735683719, -8.79826851123838, -9.43062417574483, -9.98182282315856, -10.4601710316719, -10.8728783342171, -11.226728342354, -11.528297227995, -11.7839251323586, -11.9996023874551 } }, { { -0.112736909347067, -0.200369407998561, -0.355706999332081, -0.629197375359706, -1.10100713539809, -1.87108049677883, -2.98536508476364, -4.33366579207269, -5.71190649573396, -6.97400647152024, -8.0619948585277, -8.97119628657303, -9.7221177812124, -10.3436473202422, -10.8629571273615, -11.3011543662889, -11.6732306201688, -11.9897973796427, -12.2588208995821, -12.4867657840955, -12.6791975177262, -12.8410490600841, -12.9767210420474, -13.090117312409, -13.1846657164652 }, { -0.0256840318375627, -0.0456720463667571, -0.0812101342829466, -0.144372030572253, -0.256496751425724, -0.454802017150493, -0.801545675421944, -1.38806451726078, -2.3009868116535, -3.51780938425916, -4.86111197605814, -6.13961745214068, -7.25626368221913, -8.1930731508012, -8.97032242938691, -9.61842496093926, -10.1640412123949, -10.6266406206806, -11.0199202383262, -11.354028078633, -11.6371192813079, -11.8761710266267, -12.0773372160037, -12.2460838732538, -12.3872428505386 }, { -0.0105991245830995, -0.0188481081766394, -0.033516658178819, -0.0595989216157318, -0.105966327652669, -0.188341127263814, -0.33438257583252, -0.591632980095419, -1.03604461103882, -1.76366798237416, -2.82022640503435, -4.09352716996091, -5.3696732317047, -6.50295840416507, -7.45470898757292, -8.2436860513338, -8.90249113357835, -9.45858444620232, -9.93118308128994, -10.3335923442104, -10.6757608843801, -10.9658278322081, -11.2108531229573, -11.4171078111519, -11.5901765202059 }, { -0.00558869335226197, -0.00993824346138442, -0.0176728901793551, -0.0314268669629849, -0.0558831091691742, -0.099360936096443, -0.17660813813957, -0.313591888818461, -0.555065846144897, -0.973118489184545, -1.66119775487304, -2.6689225517111, -3.88917437632526, -5.10329038779369, -6.1664760992206, -7.05157503301192, -7.78564335043179, -8.40186545543338, -8.9247719156489, -9.37067274689934, -9.75095838987336, -10.0744713537098, -10.3487023645772, -10.5802829783303, -10.775155477762 } }, { { -0.0563794859592771, -0.100246637965936, -0.178200023427636, -0.316516813079725, -0.560784202317486, -0.98599442849526, -1.69647635863262, -2.77280866863373, -4.14999545915284, -5.60995452680286, -6.95394585358896, -8.08951057575321, -9.00429875929399, -9.7277913350248, -10.3029718480897, -10.7682914394675, -11.1513737720064, -11.4704240967171, -11.7376168634271, -11.9617073050691, -12.1495143577446, -12.3066533552601, -12.437881466583, -12.5472692670117, -12.6383015999199 }, { -0.0128421533049288, -0.0228367956963023, -0.040609410124102, -0.0722104167734767, -0.128385225188247, -0.228164068309005, -0.404952589756143, -0.715772529930842, -1.24969806489348, -2.11072941537292, -3.3207907758593, -4.70397670078562, -5.99926029196526, -7.0666728759271, -7.90254597586442, -8.55862971898546, -9.08641507545653, -9.52114225392991, -9.88443655128081, -10.1899555319, -10.4472296798743, -10.6636334272598, -10.8452760251673, -10.9973849566183, -11.1244785694629 }, { -0.005299571861059, -0.00942410790076501, -0.016758631684568, -0.0298011621684686, -0.0529927267138685, -0.0942242586741984, -0.167491806202439, -0.297481513572173, -0.526970192872004, -0.92602247338812, -1.59014683922758, -2.58120882772211, -3.7917844926918, -4.96058103298027, -5.91961731885074, -6.66526350423025, -7.25310006453197, -7.73111341384339, -8.12892846659987, -8.46387813300506, -8.74695680175199, -8.98610551490193, -9.18770412344258, -9.3571855764456, -9.49927952504813 }, { -0.00279434800145, -0.00496912918348867, -0.0088364869991933, -0.0157136691453087, -0.0279428796291107, -0.049687915936067, -0.0883458915416362, -0.157030067640015, -0.278830973892785, -0.493548324286518, -0.86525436828707, -1.47610820282627, -2.36084468846699, -3.38839775896912, -4.33039532403298, -5.08468045682186, -5.67558043562178, -6.15137769339661, -6.5456618545743, -6.87779911961656, -7.15931651845451, -7.39803640608462, -7.60003323161017, -7.7704378837007, -7.91374042944743 } }, { { -0.0281909579539986, -0.050130148934252, -0.0891383776003369, -0.158473415024242, -0.281588250876158, -0.49950458449448, -0.881452761990492, -1.53171708740008, -2.55720693543144, -3.94016455668038, -5.44192623932102, -6.78114970261532, -7.8328070385731, -8.6141418204505, -9.19597956644024, -9.64403067010981, -10.0018203393092, -10.2947937374196, -10.5379123643289, -10.7407871368822, -10.9103204267278, -11.0519200003402, -11.1700391704006, -11.2684280471522, -11.3502673659118 }, { -0.00642108916896315, -0.0114184682322921, -0.0203051008379224, -0.0361074335845686, -0.0642051184550114, -0.114152229473316, -0.202868733289569, -0.360053228501784, -0.636377137159095, -1.11075657828257, -1.87283383107039, -2.92336674649553, -4.05510972371726, -5.01265424671975, -5.72670475784279, -6.25408770770809, -6.66044308532794, -6.98725246603454, -7.25716817839653, -7.4828966171507, -7.67247099804406, -7.83171401135971, -7.9652801474435, -8.07708241401471, -8.17047406394729 }, { -0.0026497865638071, -0.00471205751155666, -0.00837933586796662, -0.0149006936922189, -0.0264969965138481, -0.0471156883421082, -0.0837658902622338, -0.148852682337969, -0.264106266637545, -0.46636503930147, -0.811797129917465, -1.35910693653457, -2.09242463499521, -2.85404497103357, -3.48580075312089, -3.96330680027304, -4.32846974263583, -4.6197244391524, -4.85973045840248, -5.06088065080151, -5.23052383004765, -5.37370049269851, -5.49433813128633, -5.59573101516883, -5.68072705019696 }, { -0.00139717404310388, -0.00248456483006124, -0.0044182448397441, -0.00785684210871247, -0.0139714821904631, -0.0248441962213374, -0.0441742847869081, -0.0785225498087728, -0.139457507798188, -0.247006203871393, -0.433861137212917, -0.743953553245805, -1.20242200524765, -1.74912126273844, -2.25757828298575, -2.66351247176514, -2.97859894313243, -3.23048048719149, -3.43837607602982, -3.61316793740868, -3.76119111016171, -3.88666101132157, -3.99280925945873, -4.08234734245922, -4.1576408243861 } }, { { -0.0140955896770211, -0.0250656969325813, -0.0445726883534999, -0.079256372252311, -0.14090444792468, -0.250368095620786, -0.444110269598199, -0.783608977331355, -1.36093842579576, -2.26568230877493, -3.45238849319182, -4.64753583003626, -5.59505804903838, -6.26197065675012, -6.72912244471316, -7.07363316131263, -7.34221228981685, -7.55958997896735, -7.73902110267004, -7.88839081737483, -8.0130720095259, -8.11715164181393, -8.20394673533123, -8.27623153060116, -8.33635140966182 }, { -0.00321054498472131, -0.00570923636683995, -0.0101525630752287, -0.0180537879583182, -0.0321029593276719, -0.0570783629622686, -0.101446979147755, -0.180097007249191, -0.318575208216832, -0.557401984447937, -0.945696860336639, -1.49354175007548, -2.09926389447926, -2.61748891622647, -3.00197090810829, -3.28317306641384, -3.49825480675652, -3.67053890841547, -3.81256161699855, -3.93123518729079, -4.03086509142045, -4.11454093080378, -4.18471925338989, -4.24346014880803, -4.29252708414818 }, { -0.00132489322033433, -0.00235602840955441, -0.00418966598703084, -0.00745033589794501, -0.0132484366970831, -0.0235574981047932, -0.0418810010143459, -0.0744154432664459, -0.131992459289103, -0.232851774343985, -0.40420509022883, -0.67220213834183, -1.0233190263927, -1.38054757450374, -1.67537551392902, -1.89973490632404, -2.07271703111851, -2.21141994434478, -2.32602480921372, -2.42219403901357, -2.50334415360905, -2.5718505933779, -2.62957931372847, -2.67810163838777, -2.71877839320265 }, { -0.000698586996029172, -0.00124228227149771, -0.0022091216127386, -0.00392841651559662, -0.00698571557342116, -0.0124219546179009, -0.0220863359529607, -0.0392567484487557, -0.0697034497449679, -0.123363415814863, -0.216188452212936, -0.368437568819621, -0.588076071015174, -0.841949782397771, -1.07413249331025, -1.2601738601578, -1.40616014903879, -1.52385960134856, -1.62146369385719, -1.70371141647486, -1.77343497763752, -1.83256316804216, -1.88259724944569, -1.92480680916344, -1.96030348861156 } } }
            );

            _l00 = new MultiVariableInterpolator(grid,
                new[,,] { { { 0.592787184273089, 0.591328518299446, 0.591744871120944, 0.592374007655703, 0.592819869814103, 0.593090333508652, 0.593235683840396, 0.593322336160548, 0.593376391244901, 0.593411743316474, 0.593429111511762, 0.593428573148915, 0.593423898186524, 0.593420195232712, 0.593414288159402, 0.593405229292111, 0.593394635872266, 0.593376062037244, 0.593341180832796, 0.593291888622421, 0.593197717888548, 0.592924079734404, 0.592169071436102, 0.590379780998236, 0.586260322772369 }, { 0.843787306144219, 0.836874768119891, 0.83397031655769, 0.833570059324891, 0.833917634229541, 0.834245921022443, 0.834453499417714, 0.83456554408271, 0.834629201407163, 0.83466778555687, 0.834691845222597, 0.834701026314714, 0.834698501857528, 0.834694845033863, 0.834691491151126, 0.834685612974405, 0.8346777769998, 0.834668763143234, 0.834651354967374, 0.834620664161005, 0.834580164294438, 0.834498324348123, 0.834256621187686, 0.833605151615682, 0.832094283312683 }, { 0.945731150072737, 0.940824616569857, 0.935881911066035, 0.933161970271042, 0.932394465673103, 0.932426564610458, 0.932572845921959, 0.932675555030636, 0.932731844740924, 0.932763154097797, 0.932781690311166, 0.932792221352276, 0.932794335791667, 0.932792234318098, 0.932790548031893, 0.93278851865454, 0.932784925375831, 0.932780902673968, 0.932776170931309, 0.932766166444719, 0.93274961074816, 0.932729329185675, 0.932686554372445, 0.932554643414153, 0.932191537291914 }, { 0.981087773610098, 0.980017870579392, 0.97783585541653, 0.975128172973289, 0.973311776856112, 0.972650491517137, 0.972559989497061, 0.972597872723007, 0.97263412509476, 0.972654872011783, 0.972666413529676, 0.972673091683321, 0.972676104235334, 0.972675874388964, 0.972675012261816, 0.972674443154447, 0.972673467565431, 0.972671903839589, 0.972670495197123, 0.972668679752322, 0.972664490024202, 0.972657959292295, 0.972650538145011, 0.972634170425262, 0.972579614774469 } }, { { 0.593184913647999, 0.591358395804413, 0.591666485491343, 0.592309592959827, 0.592777210874056, 0.593066707074631, 0.59322262630393, 0.593314160809328, 0.593371210688733, 0.593408291288232, 0.593428095020693, 0.593429250012203, 0.593424875406987, 0.593421613691056, 0.593416839150988, 0.593408988195772, 0.593399889960239, 0.593385372304502, 0.593356673608847, 0.593314732740921, 0.593243495143911, 0.59304168888014, 0.592455542329522, 0.591021564090622, 0.587708775529063 }, { 0.845428749251905, 0.837817396649002, 0.834254038092037, 0.833545659428284, 0.833847485858021, 0.834195012128113, 0.834424271408893, 0.834549891323759, 0.834619894527011, 0.834662025708197, 0.834688376985462, 0.834700489166987, 0.834699447621413, 0.834695857955886, 0.834693028099704, 0.834688306445357, 0.834681309469572, 0.834673750133685, 0.834660622060454, 0.834635267182919, 0.834600866813141, 0.834542369383961, 0.834373635646002, 0.833889402750383, 0.832726452563766 }, { 0.946697748035259, 0.942270315146872, 0.937029465885221, 0.933652595856585, 0.932475826439347, 0.932391604750102, 0.93253634818747, 0.932653497213195, 0.932720068615251, 0.932756398113477, 0.932777611985231, 0.932790190624519, 0.932794480275998, 0.932792959052779, 0.932791214054255, 0.932789652241402, 0.932786774364533, 0.932783015390317, 0.932779260556074, 0.932772120993074, 0.932758447877146, 0.932741153549707, 0.932712793041442, 0.932628148802997, 0.932375782258234 }, { 0.981287487945935, 0.980530676152519, 0.97877860547399, 0.976099174123586, 0.97383546366368, 0.972795425980706, 0.972563596668159, 0.972581324068945, 0.972622605949767, 0.972648581376681, 0.972662864610096, 0.972671045002069, 0.972675434641862, 0.972676194488469, 0.972675357704536, 0.972674788470972, 0.972674123173553, 0.972672849530256, 0.972671431189196, 0.972670142827081, 0.972667395032006, 0.972662057433865, 0.972655657242032, 0.972645873882412, 0.972615194498463 } }, { { 0.594292042482811, 0.591534510849596, 0.591503987945713, 0.592156141570029, 0.592673309365966, 0.593007126824935, 0.593190493960461, 0.593294237286752, 0.593358729236747, 0.593399841270062, 0.593424686377988, 0.593430208337715, 0.593426886202091, 0.593424383896365, 0.593421766013489, 0.593416800668885, 0.593410466036767, 0.593402647929629, 0.593386732880141, 0.593359362381163, 0.593320501368613, 0.593228431971881, 0.592934170226177, 0.592111649103544, 0.590176640056651 }, { 0.849514132182339, 0.840648388717148, 0.835337852870447, 0.833629555916613, 0.833682132632276, 0.834057220586707, 0.834339799772709, 0.834504998985516, 0.834593933413596, 0.834646235012799, 0.834678370160897, 0.834697024101026, 0.834700964219547, 0.834698162438862, 0.834696033019715, 0.834693693770328, 0.834689327069623, 0.834684046854495, 0.834677937315686, 0.834665316062165, 0.834643423616601, 0.834614762128798, 0.834553065660337, 0.834356555712624, 0.833792644092053 }, { 0.948466756223484, 0.945605053782187, 0.940651486800454, 0.935757287467664, 0.933113720494895, 0.932388795335457, 0.932431180109356, 0.932576964556658, 0.932677966460414, 0.932733182262635, 0.932763972878182, 0.932782172239318, 0.932792301583031, 0.932794405468569, 0.932792918613056, 0.932791860885115, 0.932790736170504, 0.932788549309139, 0.932785929095613, 0.932783351394843, 0.932778062487159, 0.932767991260105, 0.932755338562755, 0.932733463304449, 0.932663713621825 }, { 0.981573252893768, 0.981341436933096, 0.980676436225355, 0.979078654483896, 0.976463527927771, 0.974064885801702, 0.972871775349581, 0.972571101263959, 0.972575684435381, 0.972617981387055, 0.972646057416728, 0.972661516981073, 0.972670307574053, 0.972675082737127, 0.972676271540167, 0.972675764548952, 0.972675412222963, 0.972675123824877, 0.972674493795293, 0.972673637007453, 0.972672968425271, 0.972671864471089, 0.972669279393415, 0.972665456151544, 0.972660561884347 } }, { { 0.598829458160263, 0.592974850579256, 0.591339827740062, 0.591706243730972, 0.592342758676285, 0.592799207220544, 0.593078887440664, 0.593229265123244, 0.593318103140631, 0.593373249668314, 0.593408901566495, 0.593427684377876, 0.593430136500006, 0.593429658870549, 0.593430773267151, 0.593431853535589, 0.593433176001422, 0.593434737760342, 0.593436058687742, 0.593438192228465, 0.593441675368991, 0.593442334683716, 0.593433587135495, 0.593389213564341, 0.593169578302332 }, { 0.860171229947639, 0.853688924494682, 0.844486166075668, 0.837263972985928, 0.834081933421473, 0.833556526748968, 0.833887594185207, 0.834224424636585, 0.834441229136597, 0.834558939192561, 0.834625156824936, 0.83466495546683, 0.834689513810689, 0.834700260526303, 0.834701174603979, 0.834703691399679, 0.834707010366639, 0.834709389184724, 0.834713857573133, 0.834720914136333, 0.834726144971233, 0.834731013768153, 0.834744540112021, 0.8347678238123, 0.834783917369761 }, { 0.950209882408425, 0.950203292475774, 0.950182483265604, 0.950116977131091, 0.949912766830501, 0.949295009630908, 0.947584204426844, 0.943811782287079, 0.938501940617103, 0.934399601120487, 0.932655826573317, 0.932363770444657, 0.932487414551416, 0.93261720934697, 0.932691989259091, 0.93272519523961, 0.932728594582081, 0.932644478927189, 0.923277199596176, 0.927083314533225, 0.922341871361429, 0.91619937002133, 0.912065296380514, 0.910245580627861, 0.909596176571366 }, { 0.981606693439417, 0.981442903781389, 0.980959535209163, 0.979709210438094, 0.977340586343771, 0.97470367062711, 0.973119513311333, 0.972609558739414, 0.97256395421, 0.972605460181138, 0.972638657406226, 0.972657136065899, 0.972667554193053, 0.972673925152925, 0.972676273801154, 0.972674784866819, 0.972673148784612, 0.972671289787758, 0.972668149595228, 0.972664601322266, 0.972660280237002, 0.972651353276866, 0.972637197919855, 0.97262008868897, 0.972584074456554 } }, { { 0.631863485892168, 0.631318036518191, 0.629681557163078, 0.625253096114493, 0.615991992332789, 0.60399344285823, 0.595372326011142, 0.591789263603405, 0.591394584242501, 0.592018974870566, 0.592566780946192, 0.592918726801564, 0.593080737472751, 0.593087918062053, 0.592684762153609, 0.589860023623906, 0.564601067718888, 0.551041286723152, 0.551392002701444, 0.551001932311772, 0.550788295940368, 0.550709477617373, 0.550683331796062, 0.550674938263256, 0.550672271334627 }, { 0.855117617462776, 0.846099746675557, 0.838232229514637, 0.834392447505003, 0.833543603601036, 0.833819193282518, 0.834173631187068, 0.834411731819112, 0.834543113105, 0.834615890978933, 0.834660333664749, 0.8346900063937, 0.83470099774602, 0.834691580126103, 0.834678291638695, 0.834659081172642, 0.834630909723596, 0.834589005462493, 0.83451194072171, 0.834386322060397, 0.834161984756967, 0.833632269027537, 0.832394994589027, 0.829609359346322, 0.823715318709417 }, { 0.944812005144043, 0.939633567201804, 0.935073041956616, 0.932867136539471, 0.932368328159522, 0.932459103326997, 0.932599986975075, 0.932690969251067, 0.932740051641773, 0.932767846883316, 0.932784768572171, 0.932793791714883, 0.932793093841558, 0.932789339295095, 0.932785797928724, 0.932780069178666, 0.932772366366705, 0.932763241196805, 0.932745963190312, 0.932716442231093, 0.932677685032432, 0.932599730846004, 0.93238718474503, 0.931864676697361, 0.930687829447322 }, { 0.97983313791095, 0.97753363296895, 0.974863085056758, 0.97318920637117, 0.972623508214467, 0.972562155373029, 0.972602616277682, 0.972637026126336, 0.972656374912198, 0.97266719956739, 0.972673574040568, 0.97267623831891, 0.972675466785054, 0.972674297604977, 0.972673300447312, 0.972671503458989, 0.972669119541591, 0.97266690471283, 0.972662906153477, 0.972654879045827, 0.972644768023841, 0.972630753396495, 0.972591527615847, 0.972474390486556, 0.972185886116212 } }, { { 0.592773328990811, 0.59132780410442, 0.591747811638878, 0.59237642364876, 0.592821581696926, 0.59309138206711, 0.593236324265415, 0.593323247308637, 0.593378539700021, 0.593416684541517, 0.593430133539001, 0.593417405760168, 0.593398448771361, 0.59337040912512, 0.593328314033962, 0.593260619002209, 0.59313651872755, 0.592927992558586, 0.592506082225083, 0.591501149718978, 0.589196519670524, 0.584086215549248, 0.574684554768132, 0.563554738477646, 0.555922093866557 }, { 0.83573531604587, 0.83369929415592, 0.83364279664174, 0.834017053240109, 0.834313712801573, 0.834490939923744, 0.834585992047966, 0.8346415694895, 0.834676121947191, 0.834697321544801, 0.83469995582764, 0.834692403917018, 0.834684504503179, 0.834672666878606, 0.834655743407643, 0.834633271007394, 0.834591562673476, 0.834522488952006, 0.834418747869899, 0.834184963031888, 0.833587179561972, 0.832199259184509, 0.82904487227551, 0.822516118111179, 0.813001410020221 }, { 0.935379317727584, 0.93297348610942, 0.932375129371185, 0.93244597291657, 0.93258952358949, 0.932685107940955, 0.932736910594934, 0.932766029630104, 0.932783545899087, 0.932793259715357, 0.932793685611194, 0.932790410040767, 0.932787579422739, 0.932783224389166, 0.932776836375205, 0.932769866522854, 0.932757908718251, 0.932735279318448, 0.932705343209358, 0.932655902632555, 0.932521358565459, 0.932164182106319, 0.931342408758486, 0.929473667055683, 0.925516683524496 }, { 0.975659757679683, 0.973583389641489, 0.972720124431835, 0.972559359907868, 0.972588545229036, 0.972627897180194, 0.972651416643423, 0.972664381100442, 0.972671913461341, 0.972675836693261, 0.97267593626483, 0.972674730405693, 0.972673867747617, 0.972672535658936, 0.97267039068616, 0.972668342463932, 0.972665640258109, 0.972659655787429, 0.972650615650103, 0.972640190704345, 0.972616711017704, 0.972543236201348, 0.972343612878245, 0.971893115276561, 0.970871102078489 } } }
            );
            _l01 = new MultiVariableInterpolator(grid,
                new[,,] { { { 87.1297238900046, 44.9336506124973, 20.7848886132015, 9.11782102369054, 3.91118287415303, 1.65435043600902, 0.709981258352622, 0.301817204187454, 0.124505891156482, 0.0454989483159129, 0.0083606421190565, -0.00858788721290656, -0.0157545401219756, -0.0196470870177717, -0.0246787582274971, -0.0308206449588511, -0.036679818970578, -0.0450411899079726, -0.0571282302815387, -0.0695568657844152, -0.0859593536008003, -0.115925590724805, -0.163768250045731, -0.238011383539335, -0.350968436566008 }, { 172.139592534345, 97.5695804223886, 51.8223591009973, 24.8456937376911, 10.9193046802869, 4.64121612248485, 1.93707676950895, 0.814248080876737, 0.339918323824776, 0.136660900919148, 0.0460811671112416, 0.00328610784297736, -0.0158407915541899, -0.0234477309326201, -0.0286474826401365, -0.0361818439024841, -0.0442884399407275, -0.0520442285385219, -0.0642988476663399, -0.08094731162844, -0.0970451968152305, -0.119935056225089, -0.162843146580259, -0.231198667043396, -0.338475889432772 }, { 183.417392209798, 133.519248271746, 80.3837341141569, 43.5560299240019, 21.3882196087032, 9.46527942186511, 3.98636514491783, 1.64351030425516, 0.678607299884861, 0.277240014413576, 0.106954047194717, 0.0301419700605, -0.00612557828760272, -0.0212959485663511, -0.0271608198415304, -0.0330373628073565, -0.0416361265077688, -0.04952934852984, -0.0574186673230252, -0.071132017364108, -0.0885906975344046, -0.10410878692819, -0.127237847072511, -0.172382941915712, -0.244659828016035 }, { 126.986452505264, 114.912666521145, 89.9984011785151, 57.692081600753, 31.9546328716615, 15.8651761989059, 7.04126871970902, 2.93806109653107, 1.19659181967468, 0.485742922089123, 0.193200628586603, 0.0689169895796799, 0.0115429804901503, -0.0148186432611901, -0.0245361447643871, -0.0288726732173546, -0.0354668865172678, -0.044132547302095, -0.0506857655353184, -0.0580314812351264, -0.0720160161086412, -0.0886091030391008, -0.101634819031106, -0.121650712774873, -0.16334141244298 } }, { { 87.5217410296467, 45.6515667594874, 21.3536265874379, 9.39550049752059, 4.04228136870276, 1.70929331739466, 0.732589274621748, 0.312312429360576, 0.129548497203515, 0.0487543250333897, 0.0109385504500265, -0.00645663841575623, -0.0139198730110456, -0.0175694650184343, -0.021881496255123, -0.027503067491351, -0.0327914586326844, -0.039707987849705, -0.050345616272268, -0.0617087074446469, -0.0750012797710713, -0.0991087919806952, -0.138927965140816, -0.199993085158383, -0.295860306503335 }, { 169.888764253413, 97.9420277341968, 52.6847642991995, 25.7944558676043, 11.4579704206177, 4.8930178982288, 2.0451873440153, 0.858151418553973, 0.359610287208538, 0.146226913616639, 0.0524276439606496, 0.00838556651192996, -0.0117573123414431, -0.0198840988618691, -0.0243293486084508, -0.0304844282417554, -0.0378229945227683, -0.0443812141150708, -0.0538185719794877, -0.0680546995326591, -0.0823082795002833, -0.0993410817671608, -0.131498780000253, -0.184984542354725, -0.267590275465852 }, { 165.631127482934, 127.231346506093, 80.0272350244511, 44.3355605640344, 22.4374775316651, 10.1603931432853, 4.31870204244616, 1.7865711671789, 0.736811983124109, 0.302872702676543, 0.119868469667256, 0.0392510359439546, 0.00119781538257393, -0.0156259499939457, -0.0218989631749811, -0.0262505185948125, -0.0329964752614559, -0.0401557629272468, -0.0461956584188974, -0.055834357547368, -0.0702999405387053, -0.0837583610827687, -0.0992176142321091, -0.129917557892469, -0.182337487654621 }, { 104.276702702193, 97.3975977238801, 81.3545130077113, 56.15998271128, 32.5337959828882, 16.856458162158, 7.77050778792891, 3.29789891273277, 1.35094024525322, 0.548857885629432, 0.221034185288532, 0.0840730069606473, 0.0230164086387593, -0.00580161663490513, -0.0176348219949893, -0.0217572394532629, -0.025911663490816, -0.0325776393819414, -0.0386845441394786, -0.0434835267361265, -0.0522088742600321, -0.0655059740054542, -0.0769236240225608, -0.0885475261423374, -0.113260271643666 } }, { { 88.2158571671308, 47.0105909940787, 22.6086119190184, 10.0367402339471, 4.34529729814244, 1.84021282115059, 0.78540121879471, 0.336552761629856, 0.140944451964602, 0.0556135294479764, 0.0162460916677052, -0.00204524076936213, -0.0101926141625714, -0.0137001166029504, -0.0166923481909838, -0.0210777316235579, -0.0255371491186125, -0.0300725141851178, -0.0374563999752707, -0.046868420548208, -0.0559376440287982, -0.0698617266539735, -0.0952867033591755, -0.134442092480506, -0.195841073183654 }, { 160.722319946718, 98.0714398006619, 54.1296871978063, 27.7953594751155, 12.7898368231111, 5.53083987811263, 2.329316857148, 0.972958422225661, 0.409651423292169, 0.169555801814591, 0.0662342052189749, 0.0191374245455957, -0.00297909531969393, -0.012653192164147, -0.0165763866852171, -0.0200876441786332, -0.025330255400522, -0.0304534371488966, -0.0354219148073914, -0.0437876356971243, -0.0547644495192661, -0.0647792458647025, -0.0792396806330945, -0.106962751121976, -0.150848805970448 }, { 120.757072070616, 104.313258367145, 75.440093690816, 45.2054559927344, 24.4310661557849, 11.952808741839, 5.2770774872478, 2.22040903490309, 0.915340881012757, 0.378138799614786, 0.154608966685318, 0.0598713964024461, 0.0173236392487005, -0.00275826391921446, -0.0114216614045695, -0.0146597742107878, -0.0175111835310671, -0.0220229660699876, -0.026417558381702, -0.0300972933325452, -0.0364227101724924, -0.0457276060999662, -0.0539357914161195, -0.0633049495496733, -0.0824752030002015 }, { 55.7027143484388, 54.6070015621636, 51.457834219346, 43.843970393171, 31.1014959486844, 18.3507569952587, 9.64439334644607, 4.51325135547636, 1.92996350721329, 0.79304101329399, 0.322343486843177, 0.130332923483994, 0.0505308765371756, 0.0155713624502346, -0.000918260889910859, -0.00814472935838134, -0.0106121813207917, -0.0123129817956853, -0.0153423831643701, -0.0186794471331804, -0.0209069441513119, -0.0241076962034866, -0.0301374375479879, -0.0364392422023404, -0.0411013897681369 } }, { { 89.2748918972637, 49.1089219889466, 25.4704480540399, 11.844991079278, 5.2035560511827, 2.23550946440764, 0.945517848983375, 0.40570991365661, 0.17304298135284, 0.072133837737332, 0.0277450481938834, 0.0073307334605682, -0.00212031547341968, -0.00655256991251447, -0.00843862763029542, -0.00990681773389325, -0.0123596792782241, -0.0150440657518458, -0.0171075915803347, -0.0202717987069477, -0.0254850434950404, -0.0304818685467851, -0.0351219110716765, -0.0441164250536543, -0.0601186005736274 }, { 100.541649295015, 81.5684392197424, 54.1617831195931, 30.9111141230925, 16.5118775667386, 7.98824045464908, 3.52610027082154, 1.50197458712266, 0.627447856763391, 0.263858623560497, 0.110837631816541, 0.0456102258302037, 0.0172746414696741, 0.00437411604551301, -0.00178705045531421, -0.00484504641440662, -0.00603033394057106, -0.00672934989476742, -0.00819381704296085, -0.010150077335601, -0.0113897097181898, -0.0124427902478993, -0.0150061145790983, -0.0187049050573596, -0.0212865079041037 }, { -5.20679875171484, -5.20529964774288, -5.200564626348, -5.18565887518732, -5.13918187415569, -4.99850109214429, -4.60815175239535, -3.7417631025998, -2.49186186211274, -1.42034651294465, -0.741232199576254, -0.346204168023591, -0.14905891698093, -0.062069889660789, -0.0257919763781188, -0.0111913524060398, -0.00572414335938156, -0.00509894166412856, -0.0258457100842467, 0.0181234577895993, 0.0200071871763314, 0.0182013926981112, 0.0129100050436967, 0.007928714237842, 0.00459343562643213 }, { -46.6233095273957, -45.9773330132066, -44.0684724881359, -39.1097357085991, -29.5759922650275, -18.3462410611749, -9.96570498339219, -4.84136777439255, -2.11557329158998, -0.876741295610266, -0.356222083416029, -0.144015371265665, -0.0560807708923341, -0.017712195469521, 0.000488182444796705, 0.00795441856714499, 0.0106007661005666, 0.0130020452795471, 0.0164371790218637, 0.0196339191942708, 0.022944515561438, 0.0285752710145067, 0.0355695781986636, 0.0420576570008899, 0.0523061415130691 } }, { { -11.4944375389594, -11.3684097650703, -10.9901768527856, -9.96558175729986, -7.81507392708117, -4.9874351416439, -2.8030878924392, -1.51292564323919, -0.744659987162279, -0.333964429824344, -0.145634107456107, -0.0626442748948634, -0.0284560317001672, -0.0153675795635198, -0.0132866905368247, -0.0197578062038334, -0.028966644355003, 0.0051961203464244, 0.00691057226599517, 0.0046360109742352, 0.00275392217200784, 0.00157593755412911, 0.000891144156963626, 0.000502008226686913, 0.000282456899891509 }, { -137.834247429496, -94.8918364060844, -55.1346555806855, -29.7940884363458, -14.7090159311183, -6.56545398067913, -2.80852686372058, -1.17427780497075, -0.491652798860111, -0.205195918692153, -0.0817377990046964, -0.0257208624535679, 0.00176530761329713, 0.0129322861575532, 0.0182250432749426, 0.0239253030703832, 0.030574168899412, 0.0384740495620173, 0.0498420955777213, 0.0640509185600926, 0.0832451525153956, 0.11593280513303, 0.16909754075726, 0.250241112498562, 0.349126284290203 }, { -197.519997936543, -137.408902037899, -80.2710933135524, -42.7064974888633, -20.4418632459817, -8.90934451037896, -3.72755075687915, -1.53426272248274, -0.632740949119418, -0.255303983900096, -0.0927574489036325, -0.0164962606818681, 0.0181305582236474, 0.0310436803386404, 0.0386428941061885, 0.0490552904232493, 0.0604495527956579, 0.0716801757482638, 0.0891062722054166, 0.112382355979485, 0.135788603657597, 0.170824187995575, 0.23563272850721, 0.339777723706107, 0.505236227186766 }, { -213.908327781858, -164.003527330184, -102.998834390494, -56.3656336639274, -27.6147846490929, -12.1369332929439, -5.04294467802907, -2.05113693270381, -0.831251504793536, -0.32754528383353, -0.110998004769849, -0.00941548569704466, 0.0352662067054175, 0.050831292725532, 0.0605752725531697, 0.0759775235140418, 0.0927206969884077, 0.105945581427512, 0.126333526374696, 0.159043991183143, 0.190331291951027, 0.221860431032847, 0.284449473081015, 0.397683619549954, 0.573556969522972 } }, { { -87.114015489385, -44.9055655991508, -20.7632055608969, -9.10687043447752, -3.90534746274013, -1.65119431107154, -0.707888501434971, -0.29926312450069, -0.120427827475857, -0.0376402629443941, 0.00316607605331344, 0.020142101270183, 0.0288226491840521, 0.0382173779980801, 0.0492972171130501, 0.0632945518013518, 0.0830007902590857, 0.108001500830056, 0.145241415583077, 0.207417839532166, 0.304619923011167, 0.439571265722199, 0.553092036850281, 0.529292983682582, 0.385009736561343 }, { -172.011749387604, -89.3139580956286, -41.5725415527193, -18.0504253043526, -7.6204259296461, -3.1792146529392, -1.33668519777681, -0.551477416411166, -0.21159261436419, -0.0529418857874336, 0.0216874977671301, 0.0512878097193447, 0.0668367409241139, 0.0857272672009036, 0.107502850319368, 0.131055435326307, 0.166040091864711, 0.210793830980893, 0.26186304086939, 0.345535174059246, 0.489437041097357, 0.716122936236931, 1.06168531100097, 1.4543299064463, 1.58235946849769 }, { -254.103314745775, -136.191837318389, -65.8540952759822, -28.8652414328317, -12.1072293834547, -4.98572754834111, -2.05737564136187, -0.834458140124741, -0.311222815778468, -0.0691522768405469, 0.0431701489885116, 0.0863244972256488, 0.107415049286121, 0.135058336870463, 0.168155767706859, 0.198139771861126, 0.240983868155325, 0.305088384556682, 0.369988627923155, 0.44991721051967, 0.601016587644415, 0.8543594298029, 1.25233126644833, 1.87836468773028, 2.62995070467779 }, { -320.456719606569, -181.824652861106, -92.5010388952736, -41.8968417051011, -17.6361254922396, -7.20107526609832, -2.92335767022075, -1.16928297391072, -0.429933225176094, -0.0923709705123334, 0.0641815111241522, 0.122910290553454, 0.14755346661933, 0.181478803643446, 0.226610430114482, 0.262635961384472, 0.303688624317086, 0.378403266547022, 0.465396842827358, 0.538392893659765, 0.657268652902162, 0.894518139388268, 1.27435624327567, 1.87679470628179, 2.84700722994055 } } }
            );
            _l02 = new MultiVariableInterpolator(grid,
                new[,,] { { { 0.241782198076193, 0.22427235722937, 0.185437090341136, 0.144914806047347, 0.110565598542587, 0.083142352704616, 0.0634338050033773, 0.0479383499217786, 0.035146793216383, 0.022810594845508, 0.00743545374941105, -0.0135427853745217, -0.0440968638084493, -0.0977115538389075, -0.218198393479655, -0.484552548909486, -1.02548693325656, -2.23947380692482, -5.05229143028088, -10.9453575827717, -24.0864492955848, -57.9512590777514, -146.494906504565, -381.346576814404, -1004.03248016666 }, { 0.319892974067801, 0.32548348535329, 0.310136881726947, 0.265709898291362, 0.208059876470485, 0.157338779499096, 0.116770745342669, 0.0872748161651167, 0.0647796655986004, 0.0463003067656168, 0.0277456135694752, 0.0035149165090909, -0.0301020367571371, -0.0791937211832915, -0.172023101161879, -0.386334522070646, -0.84092788573683, -1.75730003326967, -3.86097203058212, -8.64485288066024, -18.4367887412686, -40.5532066085805, -98.1127133262918, -248.657918483649, -650.12040468717 }, { 0.245187416164817, 0.318112925038157, 0.342091040908191, 0.331383065339586, 0.290410165714755, 0.228905468691487, 0.17151849110581, 0.125757565828539, 0.0923345982746364, 0.0670768146798415, 0.0460102467164456, 0.0230522050692847, -0.0083279106002187, -0.0514723797585387, -0.116726177704708, -0.252471469107859, -0.565812118201374, -1.19691789330767, -2.46750131030731, -5.43599732226672, -12.0402393956221, -25.1663812670913, -54.7208991405889, -131.984020021937, -333.845190332756 }, { 0.127952980406373, 0.205971435979523, 0.287128670785056, 0.327971932166346, 0.323947176601162, 0.286638363245057, 0.226462883257921, 0.168097574750901, 0.121753246010586, 0.0878904964131189, 0.062163243494911, 0.0394299477779453, 0.0117428841130779, -0.0268054207298341, -0.0789216492099353, -0.165145604776105, -0.360744490705371, -0.798241997148628, -1.63027727957951, -3.31924914273762, -7.32502350637107, -16.0278008381896, -32.6950626873081, -69.6076478833396, -166.298636253665 } }, { { 0.22493030673697, 0.21140135814223, 0.176933533047209, 0.138746021398796, 0.106188963263957, 0.0798272602761991, 0.0608222534639398, 0.0460943121792201, 0.0339812158915127, 0.0227109932287242, 0.00903680526938432, -0.00945339774103156, -0.0361555082441632, -0.0810637737150942, -0.179465437887692, -0.401089037540765, -0.850391205212795, -1.83131300790657, -4.12984889542146, -9.00627508325746, -19.4891957547182, -45.9304927112982, -115.192040296063, -297.29484710317, -786.46592806909 }, { 0.281301228211469, 0.291292410319661, 0.281557653119624, 0.246676272589616, 0.195362359432927, 0.148467851274479, 0.110355257248213, 0.0823310112803386, 0.0613418308332798, 0.0443425049591657, 0.0282528570765126, 0.00802632472816623, -0.0199866869418216, -0.0600624795298807, -0.130643896487083, -0.291065851285138, -0.642183185085506, -1.33999988590443, -2.88970547907527, -6.49877170204886, -13.9815217010201, -30.0305666487239, -70.8169098398044, -177.823688283754, -459.74693873843 }, { 0.188213815099832, 0.257638307924265, 0.289488426630176, 0.287002786992374, 0.259560341950465, 0.209511549599745, 0.158491300495182, 0.116610891159815, 0.0855189995151261, 0.0625077083612996, 0.0439859446978842, 0.0256049640303231, 0.00138885582520336, -0.0322059223753245, -0.0802455063975554, -0.171040935037156, -0.382312893665346, -0.82736531466292, -1.69259132188093, -3.63797474270972, -8.14590046258989, -17.2618359062128, -36.3767906730642, -84.78737456559, -212.067899854129 }, { 0.0842091014444562, 0.139907644595506, 0.207981699487506, 0.25581365699579, 0.264404230089735, 0.244391559577049, 0.200701328844879, 0.151578750245106, 0.110437407558673, 0.0797901903743951, 0.0571398436764515, 0.0386462617127398, 0.0188118210871492, -0.00843084010335947, -0.0455662511370442, -0.0999663385720092, -0.21170800571293, -0.473324438127349, -0.999484516912066, -1.99785352729397, -4.26565239818456, -9.51771955545537, -19.8768907891214, -40.6961538972219, -92.6117490717745 } }, { { 0.190388254227678, 0.183676370138262, 0.158527039346329, 0.125589365910871, 0.09676898495082, 0.0728587842029205, 0.0552767980191262, 0.042105265439083, 0.0313371237708672, 0.0219564134971072, 0.0113695575037718, -0.00253320818982053, -0.0223599949233235, -0.053337045041712, -0.115475960562488, -0.259236665894278, -0.558501791673484, -1.16959133535735, -2.59088956900595, -5.76728963174958, -12.2517534838226, -27.2697311993581, -66.4825264805266, -168.356601218489, -440.312552919189 }, { 0.201040081345755, 0.220531800795033, 0.219610744113034, 0.202717327685664, 0.166734890436075, 0.128449532723209, 0.0962268350370271, 0.0714655730296399, 0.0534960604833686, 0.0393612181943776, 0.0273212614658041, 0.0140148774123379, -0.00387069809680803, -0.0291819931665139, -0.0679236791519382, -0.146325313557508, -0.32808585756777, -0.701417016802958, -1.45083580658042, -3.18953412502696, -7.09523901636753, -14.932668517794, -32.5230110221575, -78.3060624580914, -197.545348065872 }, { 0.0888349935507731, 0.136680968776884, 0.17652066562021, 0.189641845458016, 0.184003010712927, 0.16109649733759, 0.126823300874149, 0.0949726646577066, 0.0696290825422355, 0.0511471648696193, 0.0371814124995834, 0.0255935831448882, 0.013157724596451, -0.00372117801556655, -0.0273778591245842, -0.062462737715344, -0.132661512845933, -0.296677960477346, -0.632845438788261, -1.28213561111922, -2.75923945900472, -6.16078098285823, -12.9256003119378, -26.9950803148457, -62.637209854908 }, { 0.0226975121327699, 0.0395747117414217, 0.0663481708417266, 0.100668691254088, 0.127435620059663, 0.134551674563184, 0.126573703654723, 0.105743104580178, 0.0805361962139842, 0.0588743080504916, 0.0425570559175204, 0.030596739987317, 0.0210903453272825, 0.0115518116841959, -0.00121062343239025, -0.0190855024120276, -0.0442108003958014, -0.0912113149217505, -0.202099492811125, -0.437554311098045, -0.870878451531015, -1.78576461598216, -3.96995058660228, -8.53675588695836, -17.1277635974012 } }, { { 0.118369252144366, 0.119864623540794, 0.113202768980858, 0.0946375313760823, 0.0742123274366231, 0.056725273698331, 0.0426418238130591, 0.0325171778508166, 0.0246433822367849, 0.0182368529726814, 0.0124205087266019, 0.00578263002122485, -0.00293701823269986, -0.0159851999835296, -0.0364400166879668, -0.0759463068277089, -0.168401133840359, -0.364452409713544, -0.736984542050395, -1.55309267174067, -3.47313790357246, -7.39324056169906, -15.1769384012718, -34.0525792944813, -83.3959358093335 }, { 0.0445487621895, 0.0648622588099659, 0.0783077879346195, 0.082469151596174, 0.081147048093821, 0.0712086264860677, 0.0563397807375772, 0.0427651454864026, 0.0317650086385462, 0.0237389591168172, 0.0177128192727907, 0.0129266792670397, 0.0086462883069653, 0.00383902975156197, -0.00274078758812609, -0.0130545376697762, -0.0287371141891845, -0.0569150246203993, -0.123157678887988, -0.271242275492962, -0.541222750402084, -1.05143039289253, -2.25507025418846, -5.00010312974199, -10.1281837350606 }, { 0.000338104879635253, 0.000601052781391616, 0.00106776047194705, 0.00189273465550877, 0.00333231425597952, 0.00574554582723987, 0.00932882707484181, 0.0130959974325742, 0.0144469352357976, 0.0128856820814217, 0.0104405200538716, 0.00797450734429443, 0.00589296995988308, 0.0043049902193162, 0.0031306372390783, 0.0023107484516696, 0.00188418364774443, 0.0024710467547704, 0.0190763969071087, -0.0206776368242209, -0.039015741717164, -0.0630144266519869, -0.0798502197071585, -0.0874333420223808, -0.090164308385544 }, { 0.0183011913886351, 0.0320900962178676, 0.0546767857209528, 0.0861994081974157, 0.115593980893541, 0.126772991390774, 0.121563777310875, 0.104472692463663, 0.0809916655204299, 0.0596423721200319, 0.0430849612361331, 0.030972225930183, 0.021442883142208, 0.0120373191736624, -0.000589567480583685, -0.0170731369525837, -0.0404502253018869, -0.0882164675383153, -0.198312023041458, -0.421232726283587, -0.875364188658093, -1.93859439683662, -4.29071689417611, -9.01931538019708, -19.9337199851536 } }, { { 0.00390304149291363, 0.006856435764068, 0.0117430686470837, 0.0187185074956116, 0.0252331696499331, 0.0262485910050846, 0.0222771189684074, 0.0177862837097888, 0.0137935680677361, 0.0104060821421986, 0.00790096704511932, 0.0059497552145938, 0.00458753856930203, 0.00387933923733711, 0.00462607832426238, 0.00878488058191301, 0.0189260740167042, -0.00499241965097411, -0.0104623263826315, -0.0119352983921097, -0.0124201531894432, -0.0125780363051122, -0.0126285335720793, -0.012644563301539, -0.0126496385895474 }, { 0.159043312893297, 0.193235078914879, 0.19682269715869, 0.186156991220398, 0.161787577165825, 0.12786008873681, 0.097135999700665, 0.0722155483393827, 0.0537719997720027, 0.0399036274646443, 0.028247319985571, 0.0157797543613415, -0.00192072715984293, -0.0249630080688066, -0.0624824067576002, -0.145792650283663, -0.331244773629393, -0.741159080410664, -1.70710013559214, -3.89935081243987, -9.00232726271648, -22.2398909496179, -57.4482167053847, -150.647919285529, -373.508239487435 }, { 0.328431996533908, 0.405417290958041, 0.419498822585104, 0.395229637830419, 0.33556023703458, 0.259800937316587, 0.193237490878132, 0.141434055265445, 0.103724837438357, 0.0744223296765664, 0.0480785304538947, 0.0152020549044493, -0.0297052743539512, -0.090435175048059, -0.20017469001527, -0.451872246591951, -0.990188936459899, -2.08794890360126, -4.61551186225902, -10.3509972336076, -22.2369845858105, -49.7268492883556, -121.864354843498, -311.97977396233, -823.622123503744 }, { 0.426102114766767, 0.580648545248011, 0.64776490269403, 0.629473429734099, 0.547832756815747, 0.427960990514328, 0.316162564692483, 0.228668202826458, 0.164793775751564, 0.115472019753676, 0.0695846490702746, 0.0104961377177856, -0.0699093486382475, -0.179185235343605, -0.379720742669519, -0.846941273511289, -1.8379956190738, -3.73465296453913, -7.91926724567546, -17.7288062009936, -37.7275485179476, -78.1977442363497, -178.253430032877, -442.978988827051, -1135.32319983809 } }, { { 0.298352357799733, 0.270958713077457, 0.221839361530839, 0.172770401925014, 0.131729166931775, 0.0990617949026118, 0.0755325104800773, 0.0567820307918964, 0.0406186950963175, 0.0225536247929882, -0.00336794066190833, -0.0380443476986651, -0.0967311675696055, -0.228007197416017, -0.522933544092407, -1.19382447013809, -2.78332101437796, -6.43709227966543, -15.3755420530497, -38.9512371405017, -101.406052163651, -259.778273486904, -581.469176780388, -990.438803503233, -1281.86410164374 }, { 0.742931466805381, 0.683625296768725, 0.564878791838459, 0.435875883565709, 0.32719069470304, 0.242747329956134, 0.181500685036195, 0.133161295560883, 0.0908505682252888, 0.0404172405799015, -0.0294370203737698, -0.123776129044803, -0.286819663890437, -0.654184754135697, -1.4587964782204, -3.16244705172379, -7.12471116039212, -16.083296505666, -35.5222772135405, -83.3110662444631, -209.627211652193, -544.63245500012, -1434.46369550457, -3493.93114555302, -6762.18759544244 }, { 1.23322883221365, 1.17369448825622, 1.00829588018892, 0.785618482965399, 0.585911700039174, 0.429052316099331, 0.31484555798066, 0.227085448092332, 0.150609650756572, 0.059508497174967, -0.066060947732104, -0.234902525432031, -0.519774954274569, -1.16217121371686, -2.57311682452569, -5.39160934869836, -11.6609148858994, -26.2520809535751, -56.6119546691402, -122.407656678376, -290.70804449696, -734.504848687049, -1913.3620511517, -5101.38707838364, -12701.0732866415 }, { 1.66304214532424, 1.67708014483038, 1.51650142814426, 1.22115234698751, 0.914013240452037, 0.66364657356017, 0.479093102418832, 0.340766780641128, 0.222811640080115, 0.0851276928881241, -0.105182531172961, -0.358196123639936, -0.764683313121667, -1.67246846148634, -3.71374292766024, -7.653957385394, -15.7383844517909, -34.8727026878773, -76.2694718640541, -156.897975218554, -340.595641750249, -824.199875742396, -2087.52439336362, -5465.61469371186, -14741.6253605315 } } }
            );
            _l10 = new MultiVariableInterpolator(grid,
                new[,,] { { { 0.0200055420621272, 0.0200077408865006, 0.0200107458177762, 0.0200148972945906, 0.0200205817697417, 0.0200280308880281, 0.0200383381314755, 0.0200511612223247, 0.0200639894920161, 0.0200647700113038, 0.0200268992381153, 0.0199541698943677, 0.0198938830825802, 0.0198557506885913, 0.0198136352405892, 0.0197654005028262, 0.0197204604926556, 0.0196575576776994, 0.0195687327703665, 0.0194822714134131, 0.0193793318257913, 0.0192227363717951, 0.0190596665122434, 0.0189082970095393, 0.0187120896664438 }, { 0.0400024613539598, 0.0400036892061267, 0.0400051232604182, 0.0400070357684824, 0.0400095713637528, 0.0400129965840108, 0.0400174178335707, 0.0400232745911711, 0.0400302684005226, 0.040036093509692, 0.0400318913047107, 0.0400046458928987, 0.0399666397636576, 0.0399416009456779, 0.039924304150175, 0.0399025996431204, 0.0398801930462364, 0.0398591735524813, 0.0398265390517039, 0.0397833242326239, 0.0397441548547353, 0.0396942493449911, 0.03961774506865, 0.0395423810010968, 0.0394735850309078 }, { 0.0600004868212823, 0.0600010507787974, 0.0600017399400315, 0.0600024688917789, 0.060003366252538, 0.0600045163003794, 0.0600060216105512, 0.06000793141925, 0.0600103467809813, 0.0600129691748465, 0.0600142439936388, 0.0600095873107173, 0.059996536539885, 0.0599840486528638, 0.0599773326089928, 0.0599714073936628, 0.059963570023811, 0.0599565513243281, 0.0599496480987708, 0.0599378271946997, 0.0599231713022943, 0.0599110556958111, 0.0598948665241142, 0.0598689505157574, 0.0598440721495192 }, { 0.0800000575685995, 0.0800001619927471, 0.0800003825021135, 0.0800006934078269, 0.0800010215445282, 0.0800013920333265, 0.0800018466072251, 0.0800024197697619, 0.0800031264492298, 0.0800039633397853, 0.080004697522699, 0.0800044340408869, 0.0800015423991183, 0.079997002619693, 0.079994077079894, 0.0799925772775471, 0.0799906952155198, 0.0799883554596416, 0.0799866104109266, 0.0799846798362185, 0.0799810491057355, 0.0799768529602661, 0.0799738141823329, 0.0799696039885189, 0.0799622452157534 } }, { { 0.0200057039006743, 0.0200079612483748, 0.0200110668483091, 0.0200153313128493, 0.0200212195211836, 0.0200289154213991, 0.0200395523711655, 0.0200530694409484, 0.020067196779865, 0.0200712780351294, 0.0200374373127622, 0.0199617294064421, 0.0198927427340372, 0.0198504824145474, 0.0198075470371932, 0.0197557753666756, 0.0197082698589042, 0.0196473180242607, 0.0195554577775179, 0.0194616418934096, 0.0193616854003606, 0.019205801806129, 0.019026408805023, 0.0188696190221048, 0.0186711300905444 }, { 0.0400024873912339, 0.0400038433740612, 0.0400053642748743, 0.0400073821594458, 0.040010049133774, 0.0400136625092194, 0.0400183485289221, 0.0400245373552306, 0.0400322022334659, 0.0400393771638718, 0.0400382599454712, 0.0400132642626645, 0.0399705764221626, 0.0399390488066312, 0.0399197370738852, 0.0398970194163676, 0.0398713860388808, 0.0398489338339601, 0.0398171854125691, 0.0397702697156549, 0.0397255982306789, 0.0396773017637005, 0.0395992507472784, 0.0395112225258742, 0.0394377622253064 }, { 0.0600004435273782, 0.0600010249316426, 0.0600018123922665, 0.0600026394705504, 0.0600036204101449, 0.0600048730711579, 0.0600065086630319, 0.0600086029279496, 0.060011260728985, 0.0600143589345531, 0.0600166470051581, 0.0600138637327107, 0.0600008234667022, 0.0599846912224943, 0.0599752221415683, 0.0599687777559744, 0.0599601375203444, 0.0599512904241321, 0.059943941716735, 0.0599323888712125, 0.0599153829212303, 0.0599003638520638, 0.0598848061543032, 0.0598579783808905, 0.059826601744871 }, { 0.0800000474057754, 0.080000138468908, 0.0800003539485921, 0.0800007102272631, 0.0800011122446535, 0.0800015438193108, 0.0800020637669982, 0.0800027152602146, 0.0800035281346979, 0.0800045154842098, 0.0800055474593645, 0.0800059174712288, 0.0800037498290846, 0.0799983861755019, 0.0799936863347859, 0.0799914339898481, 0.0799894696118882, 0.0799866337222716, 0.0799840910618362, 0.0799821160385503, 0.0799785686650613, 0.0799732529368623, 0.0799689139699711, 0.0799649516155839, 0.0799574158462124 } }, { { 0.0200060818954422, 0.0200084733497752, 0.020011814201274, 0.0200163482257462, 0.0200226877588098, 0.0200310023569137, 0.0200423579913569, 0.0200574074648703, 0.0200743014401486, 0.0200853663686339, 0.0200626579332332, 0.0199849290097937, 0.0198946589620442, 0.0198378192614099, 0.0197929583498882, 0.0197347881234682, 0.0196775379401418, 0.0196203594395583, 0.0195287918697327, 0.0194152262989717, 0.0193130158613502, 0.0191722021024319, 0.0189655639344249, 0.0187737769525951, 0.0185872419978168 }, { 0.0400024607811537, 0.0400041762429107, 0.0400059800105876, 0.0400082616786318, 0.0400112905466002, 0.0400153599949251, 0.0400207614797871, 0.0400277774131276, 0.0400369819397496, 0.0400471581245575, 0.0400531068694402, 0.040037678244216, 0.0399891662635799, 0.0399372244089204, 0.0399070830434541, 0.0398826262461923, 0.0398501082591229, 0.0398192332773048, 0.0397897797355811, 0.0397409378485343, 0.0396784297195879, 0.0396250464940499, 0.0395556715824201, 0.0394457269007221, 0.0393384925985355 }, { 0.0600003279679676, 0.0600008744533467, 0.0600018715851527, 0.0600030767316047, 0.0600043550606703, 0.0600059342768331, 0.0600079595756549, 0.0600106113158025, 0.0600139778977597, 0.0600182498592877, 0.0600229241172884, 0.0600253718599994, 0.0600176826944155, 0.0599949374833021, 0.0599719894100883, 0.0599597812265963, 0.0599501009906222, 0.0599365148323499, 0.059923627430555, 0.0599129806666592, 0.0598949221735469, 0.0598688514769691, 0.0598470451402947, 0.0598245905343778, 0.0597843183873854 }, { 0.0800000254208325, 0.080000078562203, 0.0800002318669144, 0.0800006071271293, 0.0800012630186835, 0.0800020314033414, 0.0800028448381664, 0.0800038156970162, 0.0800050279485001, 0.0800065483557829, 0.0800084096107396, 0.0800104614613711, 0.0800116300316208, 0.0800086901964662, 0.079999069944548, 0.0799888991325714, 0.0799837644228503, 0.0799804070201257, 0.0799752868629235, 0.0799698155871834, 0.0799661981197253, 0.0799610607738739, 0.0799514930228416, 0.0799417881968627, 0.0799352522188393 } }, { { 0.0200071032182959, 0.0200099952384242, 0.0200139564245004, 0.020019387244181, 0.0200268688526814, 0.0200371611292455, 0.0200506449752086, 0.0200693721717751, 0.0200932860906617, 0.020119389032945, 0.0201315255448291, 0.0200841715471621, 0.0199559096101494, 0.0198170241379885, 0.0197358058702473, 0.019677568808109, 0.0195928970829031, 0.0195029770443902, 0.0194346323780661, 0.0193310630927939, 0.0191627560894095, 0.0190070717133624, 0.0188742526410509, 0.0186403247862936, 0.0183178851420049 }, { 0.0400016455499734, 0.0400040784519002, 0.040007826856183, 0.0400118780296731, 0.0400165263395743, 0.0400227178252471, 0.0400309151614541, 0.0400420201739584, 0.0400564254574867, 0.040075689759072, 0.0400999938114208, 0.0401254244923024, 0.0401334314201134, 0.0400784672335287, 0.0399451289928075, 0.0398083988833931, 0.0397377467299842, 0.0396978600659914, 0.0396284444683998, 0.0395385612509274, 0.0394819656799532, 0.0394342248779454, 0.0393188297249328, 0.0391544271269753, 0.0390446082587458 }, { 0.0599999856906919, 0.0599999547648904, 0.0599998571027995, 0.0599995496003516, 0.059998590311796, 0.0599956818650865, 0.0599875687538103, 0.0599692366459033, 0.0599410156381637, 0.0599104010677993, 0.0598759980040843, 0.0598324729553823, 0.059776531911053, 0.059705449097094, 0.0596189552499886, 0.0595159952213334, 0.0593725956260806, 0.0589026948194183, 0.053889875001101, 0.0662549752930928, 0.067325968994243, 0.0666787894900999, 0.0647095184377954, 0.0628829881316833, 0.0616682007922676 }, { 0.0799999787133803, 0.0799999337622483, 0.0799998005871142, 0.0799994516966665, 0.0799987611703649, 0.0799978569370011, 0.0799969122516019, 0.07999582046337, 0.0799944733297379, 0.0799927807679964, 0.0799907236891637, 0.0799884222288055, 0.0799869802685021, 0.0799898843784514, 0.0800005160952133, 0.0800114889444686, 0.0800173108273011, 0.0800221367613651, 0.0800283415214301, 0.0800339573200894, 0.0800396680535197, 0.0800492192756012, 0.0800607256236713, 0.080070564748235, 0.0800843485130422 } }, { { 0.0199988324692565, 0.0199963533372337, 0.0199888989238097, 0.0199685811057488, 0.0199250267288293, 0.0198629923785, 0.0197980647998538, 0.0197188928039349, 0.0196077416065759, 0.0194583368069319, 0.019251114037008, 0.0189831746047982, 0.0186140167064911, 0.0180081381734233, 0.0163244098642408, 0.0112815872359744, 0.00498208559578426, 0.0231335449278019, 0.0244798780509299, 0.0230767674276663, 0.0218414915501871, 0.0210563206561678, 0.020597769521547, 0.0203368222301804, 0.0201895287197771 }, { 0.0399978011189798, 0.0399955686806634, 0.0399930588988299, 0.039990285561244, 0.0399866222157217, 0.0399817847831322, 0.0399752411514024, 0.0399667739425307, 0.0399557835423476, 0.0399427489899166, 0.0399333149249816, 0.0399469170049736, 0.0400070256012638, 0.0400727095717241, 0.0401177571160409, 0.0401620388534426, 0.0402098527209578, 0.0402643321497575, 0.0403400272653832, 0.0404293682290963, 0.0405368516607306, 0.0406839413445157, 0.0408444341785969, 0.0410135109586985, 0.0411640892299211 }, { 0.0599994806164377, 0.0599989435385545, 0.059998331186753, 0.0599976664680922, 0.0599968319874587, 0.0599957581343972, 0.0599943587256907, 0.0599925974097775, 0.0599904272015757, 0.059988385869137, 0.0599885924881836, 0.0599956249013148, 0.0600075640053864, 0.0600158070603447, 0.0600211431805752, 0.0600274637977246, 0.060034052875446, 0.0600403990500454, 0.0600500501899121, 0.0600625658913816, 0.0600742670448763, 0.0600897637714253, 0.0601123946407042, 0.0601340510039172, 0.0601554770010337 }, { 0.0799999049523824, 0.0799997814828513, 0.079999615217593, 0.0799994411227859, 0.0799992416337969, 0.0799989959401955, 0.079998686478369, 0.0799983073414992, 0.0799978692803393, 0.0799975344497055, 0.0799978646701577, 0.0799996448131974, 0.0800019081967047, 0.0800031871900028, 0.0800039979782357, 0.0800050959098074, 0.0800062455974551, 0.0800071406319945, 0.0800085003449673, 0.0800106449281201, 0.0800126038109622, 0.0800143810137756, 0.080017500095998, 0.0800215779492574, 0.0800246846629957 } }, { { 0.0199944639255636, 0.0199922674425253, 0.0199892668711222, 0.0199851222470559, 0.0199794571033333, 0.0199720645202579, 0.0199619642409287, 0.0199500573327639, 0.0199409294159272, 0.0199526868309938, 0.020007833115428, 0.0200716838986543, 0.0201189880775892, 0.0201659321208508, 0.0202170661172316, 0.0202787217866517, 0.0203619717305272, 0.020460172243577, 0.0205870738960371, 0.0207485073435637, 0.0209187628826368, 0.0210919106300167, 0.0211567713144727, 0.0209791309440661, 0.0206698690287186 }, { 0.0399980547693526, 0.0399973096564788, 0.0399963182661183, 0.0399949926096862, 0.0399932243780028, 0.0399909469485612, 0.0399879839327248, 0.0399848249494617, 0.0399835241251211, 0.0399902804577457, 0.0400069562322225, 0.0400215161093983, 0.0400310489872935, 0.0400411827456101, 0.0400521286832405, 0.0400636045203961, 0.0400802183406502, 0.0401006626580614, 0.0401220691201388, 0.0401522474473488, 0.0401901071558716, 0.0402262499286756, 0.0402680020346808, 0.0403013874399772, 0.0402806793128642 }, { 0.0599994630526417, 0.0599992452686811, 0.0599989736623071, 0.059998624795347, 0.0599981691212782, 0.0599975940935282, 0.059996877333337, 0.0599961605078586, 0.0599960484764579, 0.0599980318442672, 0.0600020180153901, 0.060005060207433, 0.0600068443275824, 0.0600088427910292, 0.0600110944294668, 0.0600130892255778, 0.0600158855653872, 0.0600199768086143, 0.060023898817621, 0.06002823745103, 0.0600351509603946, 0.0600427978138293, 0.0600493313344321, 0.0600579066788684, 0.0600658621721874 }, { 0.0799998745032588, 0.0799998091684094, 0.0799997375287614, 0.0799996504393364, 0.0799995409728504, 0.0799994054084188, 0.0799992431457469, 0.0799990884382417, 0.0799990905997998, 0.0799995757656752, 0.0800004672033402, 0.080001097115669, 0.0800014183184542, 0.0800017869739696, 0.0800022468199515, 0.0800026078364381, 0.0800030132558297, 0.0800037410216292, 0.0800045637007604, 0.0800051978793352, 0.0800061245648127, 0.0800076251560508, 0.0800089970198705, 0.0800100740042302, 0.0800117660064376 } } }
            );
            _l11 = new MultiVariableInterpolator(grid,
                new[,,] { { { 1.14343475069768, 1.14489341667142, 1.1444770638498, 1.14384792731502, 1.14340206515663, 1.14313160146209, 1.14298625113034, 1.14289959881019, 1.14284554372584, 1.14281019165426, 1.14279282345897, 1.14279336182182, 1.14279803678421, 1.14280173973802, 1.14280764681133, 1.14281670567863, 1.14282729909847, 1.1428458729335, 1.14288075413795, 1.14293004634831, 1.14302421708214, 1.14329785523626, 1.14405286353419, 1.14584215397113, 1.14996161220009 }, { 1.57368200440296, 1.58059454242708, 1.58349899398927, 1.58389925122229, 1.5835516763176, 1.58322338952472, 1.58301581112944, 1.58290376646443, 1.58284010913998, 1.58280152499028, 1.58277746532455, 1.58276828423243, 1.58277080868962, 1.58277446551328, 1.58277781939602, 1.58278369757274, 1.58279153354735, 1.58280054740391, 1.58281795557976, 1.58284864638612, 1.5828891462526, 1.58297098619937, 1.58321268935907, 1.58386415893249, 1.58537502723761 }, { 1.72655831553035, 1.73146484903437, 1.73640755453713, 1.73912749533186, 1.7398949999298, 1.7398629009925, 1.73971661968102, 1.73961391057232, 1.73955762086205, 1.73952631150518, 1.73950777529181, 1.7394972442507, 1.7394951298113, 1.73949723128488, 1.73949891757108, 1.73950094694843, 1.73950454022714, 1.73950856292902, 1.73951329467166, 1.73952329915827, 1.73953985485486, 1.73956013641731, 1.73960291123105, 1.73973482218855, 1.74009792831069 }, { 1.77251066107732, 1.77358056410564, 1.77576257926726, 1.7784702617116, 1.78028665782895, 1.78094794316863, 1.78103844518868, 1.78100056196262, 1.78096430959087, 1.78094356267383, 1.78093202115593, 1.78092534300228, 1.78092233045027, 1.78092256029664, 1.78092342242379, 1.78092399153116, 1.78092496712018, 1.78092653084601, 1.78092793948846, 1.78092975493326, 1.78093394466132, 1.78094047539344, 1.78094789654088, 1.78096426425983, 1.78101881991263 } }, { { 1.10303702132272, 1.10486353916637, 1.10455544947941, 1.10391234201088, 1.10344472409669, 1.10315522789611, 1.10299930866681, 1.10290777416141, 1.102850724282, 1.10281364368251, 1.10279383995004, 1.10279268495853, 1.10279705956375, 1.10280032127968, 1.10280509581975, 1.10281294677496, 1.1028220450105, 1.10283656266624, 1.1028652613619, 1.1029072022298, 1.10297843982677, 1.10318024609064, 1.10376639264144, 1.10520037088062, 1.10851315944452 }, { 1.49204056129452, 1.4996519138986, 1.50321527245507, 1.50392365111907, 1.50362182468908, 1.50327429841903, 1.50304503913826, 1.50291941922339, 1.50284941602014, 1.50280728483894, 1.50278093356168, 1.50276882138016, 1.50276986292573, 1.50277345259126, 1.50277628244744, 1.50278100410179, 1.50278800107757, 1.50279556041346, 1.50280868848669, 1.50283404336424, 1.50286844373403, 1.50292694116323, 1.50309567490108, 1.50357990779706, 1.50474285798526 }, { 1.60559171756897, 1.61001915045594, 1.6152599997185, 1.61863686974614, 1.61981363916359, 1.61989786085291, 1.61975311741551, 1.61963596838977, 1.61956939698772, 1.6195330674895, 1.61951185361775, 1.61949927497845, 1.61949498532698, 1.6194965065502, 1.61949825154872, 1.61949981336158, 1.61950269123844, 1.61950645021266, 1.61951020504692, 1.61951734460992, 1.6195310177258, 1.61954831205339, 1.61957667256156, 1.61966131680003, 1.61991368334364 }, { 1.61231094673896, 1.61306775853458, 1.61481982921187, 1.61749926056126, 1.61976297102164, 1.62080300870483, 1.62103483801744, 1.62101711061664, 1.62097582873584, 1.62094985330894, 1.62093557007551, 1.62092738968354, 1.62092300004375, 1.62092224019714, 1.62092307698107, 1.62092364621464, 1.62092431151206, 1.62092558515535, 1.6209270034964, 1.62092829185852, 1.62093103965368, 1.62093637725176, 1.62094277744354, 1.62095256080336, 1.62098324018751 } }, { { 1.02192989248795, 1.02468742412104, 1.02471794702509, 1.02406579340069, 1.02354862560477, 1.0232148081458, 1.02303144101027, 1.02292769768398, 1.02286320573399, 1.02282209370067, 1.02279724859275, 1.02279172663302, 1.02279504876865, 1.02279755107437, 1.02280016895725, 1.02280513430185, 1.02281146893397, 1.0228192870411, 1.02283520209059, 1.02286257258957, 1.02290143360209, 1.02299350299887, 1.02328776474441, 1.02411028586706, 1.0260452949155 }, { 1.32795517836563, 1.33682092183012, 1.34213145767683, 1.34383975463053, 1.34378717791491, 1.34341208996045, 1.34312951077443, 1.34296431156163, 1.34287537713355, 1.34282307553435, 1.34279094038625, 1.34277228644612, 1.3427683463276, 1.34277114810828, 1.34277327752743, 1.34277561677682, 1.34277998347752, 1.34278526369265, 1.34279137323146, 1.34280399448497, 1.34282588693051, 1.34285454841835, 1.34291624488686, 1.34311275483455, 1.34367666645529 }, { 1.36382270937923, 1.36668441182057, 1.37163797880229, 1.37653217813518, 1.379175745108, 1.37990067026752, 1.37985828549361, 1.37971250104632, 1.37961149914256, 1.37955628334034, 1.37952549272479, 1.37950729336366, 1.37949716401994, 1.37949506013441, 1.37949654698992, 1.37949760471786, 1.37949872943247, 1.37950091629383, 1.37950353650736, 1.37950611420813, 1.37951140311582, 1.37952147434286, 1.37953412704024, 1.37955600229858, 1.37962575198098 }, { 1.29202518179212, 1.29225699775242, 1.29292199846024, 1.29451978020163, 1.2971349067579, 1.29953354888399, 1.30072665933612, 1.30102733342164, 1.30102275025023, 1.30098045329855, 1.30095237726888, 1.30093691770453, 1.30092812711155, 1.30092335194848, 1.30092216314544, 1.30092267013666, 1.30092302246265, 1.30092331086073, 1.30092394089032, 1.30092479767815, 1.30092546626033, 1.30092657021452, 1.30092915529218, 1.30093297853404, 1.30093787280117 } }, { { 0.857392476810607, 0.863247084391583, 0.864882107230698, 0.864515691239752, 0.863879176294447, 0.863422727750194, 0.863143047530071, 0.862992669847493, 0.862903831830105, 0.862848685302423, 0.862813033404242, 0.862794250592861, 0.862791798470731, 0.862792276100188, 0.862791161703585, 0.862790081435148, 0.862788758969315, 0.862787197210396, 0.862785876282994, 0.862783742742274, 0.862780259601746, 0.862779600287011, 0.862788347835258, 0.862832721406365, 0.863052356668548 }, { 0.997298080599538, 1.00378038605242, 1.01298314447149, 1.02020533756123, 1.02338737712568, 1.02391278379817, 1.02358171636194, 1.02324488591056, 1.02302808141055, 1.02291037135458, 1.02284415372221, 1.02280435508032, 1.02277979673646, 1.02276905002084, 1.02276813594317, 1.02276561914747, 1.02276230018051, 1.02275992136242, 1.02275545297401, 1.02274839641081, 1.02274316557591, 1.02273829677899, 1.02272477043512, 1.02270148673485, 1.02268539317739 }, { 0.882079583194549, 0.8820861731272, 0.882106982337369, 0.882172488471885, 0.88237669877247, 0.882994455972069, 0.884705261176129, 0.888477683315896, 0.89378752498587, 0.897889864482486, 0.899633639029657, 0.899925695158317, 0.899802051051558, 0.899672256256004, 0.899597476343883, 0.899564270363364, 0.899560871020893, 0.899644986675785, 0.909012266006798, 0.905206151069749, 0.909947594241545, 0.916090095581643, 0.920224169222459, 0.922043884975113, 0.922693289031608 }, { 0.651991741246294, 0.65215553090407, 0.652638899475794, 0.653889224247808, 0.656257848341905, 0.658894764058577, 0.660478921374291, 0.660988875946187, 0.661034480475604, 0.660992974504472, 0.660959777279382, 0.660941298619707, 0.660930880492555, 0.660924509532683, 0.660922160884455, 0.660923649818789, 0.660925285900993, 0.660927144897847, 0.660930285090378, 0.660933833363345, 0.660938154448605, 0.660947081408745, 0.660961236765733, 0.660978345996572, 0.661014360228947 } }, { { 0.504358449078575, 0.504903898452554, 0.50654037780766, 0.510968838856246, 0.520229942637955, 0.532228492112507, 0.540849608959595, 0.544432671367332, 0.544827350728236, 0.544202960100171, 0.543655154024545, 0.543303208169173, 0.543141197497986, 0.543134016908684, 0.543537172817128, 0.546361911346831, 0.571620867251849, 0.585180648247585, 0.584829932269293, 0.585220002658965, 0.585433639030369, 0.585512457353364, 0.585538603174675, 0.585546996707481, 0.58554966363611 }, { 0.362351693084244, 0.371369563871262, 0.37923708103266, 0.383076863042189, 0.383925706946157, 0.38365011726462, 0.383295679360084, 0.383057578728035, 0.382926197442147, 0.382853419568213, 0.382808976882396, 0.382779304153446, 0.382768312801125, 0.382777730421043, 0.38279101890845, 0.382810229374504, 0.382838400823549, 0.382880305084653, 0.382957369825432, 0.383082988486758, 0.38330732579017, 0.383837041519675, 0.385074315957946, 0.387859951200632, 0.393753991835781 }, { -0.0725225395390767, -0.0673441015981031, -0.0627835763551499, -0.0605776709364856, -0.0600788625565432, -0.0601696377239822, -0.060310521372102, -0.0604015036481051, -0.0604505860388047, -0.0604783812803458, -0.0604953029691992, -0.06050432611192, -0.0605036282385787, -0.0604998736921252, -0.0604963323257579, -0.0604906035756934, -0.0604829007637167, -0.0604737755938447, -0.0604564975873099, -0.0604269766279406, -0.0603882194293908, -0.0603102652433565, -0.0600977191403873, -0.0595752110931649, -0.0583983638437273 }, { -0.626234703224762, -0.623935198284955, -0.621264650369902, -0.619590771684736, -0.619025073528347, -0.618963720687834, -0.619004181592159, -0.619038591440766, -0.619057940226612, -0.619068764881821, -0.619075139354968, -0.619077803633286, -0.619077032099437, -0.61907586291937, -0.61907486576172, -0.619073068773411, -0.619070684855948, -0.619068470027111, -0.619064471468042, -0.619056444359986, -0.619046333336649, -0.619032318712803, -0.618993092926469, -0.61887595578788, -0.618587451411903 } }, { { -0.096551394019474, -0.095105869133556, -0.0955258766681364, -0.0961544886780317, -0.0965996467261845, -0.0968694470963649, -0.0970143892946809, -0.0971013123378988, -0.0971566047292849, -0.0971947495707792, -0.0972081985682642, -0.097195470789432, -0.0971765138006249, -0.0971484741543804, -0.0971063790632276, -0.0970386840314683, -0.0969145837568091, -0.0967060575878489, -0.0962841472543703, -0.0952792147482753, -0.0929745846998298, -0.0878642805777567, -0.078462619802264, -0.0673328035043115, -0.0597001588912691 }, { -0.898266005499728, -0.896229983608455, -0.89617348609567, -0.896547742692791, -0.896844402254429, -0.897021629376581, -0.897116681500826, -0.89717225894236, -0.897206811400059, -0.897228010997645, -0.897230645280505, -0.897223093369875, -0.897215193956028, -0.897203356331458, -0.897186432860487, -0.897163960460206, -0.89712225212636, -0.897053178404813, -0.896949437322915, -0.896715652484121, -0.896117869010679, -0.894729948626875, -0.891575561759575, -0.885046807662487, -0.875532099477894 }, { -1.98308985213335, -1.98068402051233, -1.98008566376999, -1.98015650731344, -1.98030005798689, -1.98039564233806, -1.98044744499208, -1.98047656402713, -1.98049408029615, -1.98050379411234, -1.98050422000821, -1.98050094443786, -1.98049811381977, -1.9804937587862, -1.9804873707721, -1.98048040091982, -1.98046844311484, -1.98044581371566, -1.98041587760618, -1.98036643702844, -1.98023189296541, -1.97987471648084, -1.97905294324333, -1.97718420126668, -1.97322721801005 }, { -3.18206132301135, -3.17998495497655, -3.17912168974215, -3.17896092522561, -3.1789901105437, -3.17902946249422, -3.17905298195803, -3.17906594641504, -3.17907347877574, -3.17907740200748, -3.17907750157905, -3.17907629572002, -3.17907543306177, -3.17907410097345, -3.17907195600057, -3.17906990777751, -3.17906720557292, -3.17906122109997, -3.17905218096478, -3.17904175601972, -3.1790182763496, -3.1789448015447, -3.17874517826526, -3.17829468050903, -3.17727266701628 } } }
            );
            _l12 = new MultiVariableInterpolator(grid,
                new[,,] { { { 0.00151607718058239, 0.00270196861786058, 0.0047992455855428, 0.00852217239715146, 0.0151397529846801, 0.0269064428168758, 0.0478315071594381, 0.0850410806384615, 0.151208213310988, 0.268868718473828, 0.47810431524714, 0.85020436554114, 1.5119201501722, 2.68864489470337, 4.78124107923321, 8.50259648647431, 15.1204344242351, 26.8897243458065, 47.8219305615671, 85.0515695532572, 151.280009605063, 269.18464511212, 479.444456689219, 855.669306350748, 1534.10586986769 }, { 0.00139294909439812, 0.00249941218277153, 0.0044610502564084, 0.00793593870949831, 0.0141040421389082, 0.0250680272119599, 0.044563567588065, 0.0792326061829617, 0.140883638262886, 0.250515258262161, 0.445469158268309, 0.792156931769351, 1.4086823654245, 2.50504674555848, 4.45469920205596, 7.92178074833699, 14.0873306975494, 25.0515998590057, 44.5500761729469, 79.2266091791603, 140.896446329307, 250.585743040935, 445.77475466947, 793.459840853418, 1414.01380555797 }, { 0.00107515466395876, 0.0019235027011986, 0.00344124815936146, 0.00613967429816986, 0.0109277836276792, 0.0194310175247112, 0.0345465665344229, 0.0614246511156181, 0.109221620160083, 0.194218056295235, 0.345364997018721, 0.614146343819416, 1.09212050881617, 1.94210138245395, 3.45360752470637, 6.14149757833386, 10.9213565392598, 19.4213384704261, 34.5368064609596, 61.4169917917837, 109.219195351734, 194.227823241912, 345.411699221236, 614.346924853951, 1092.99512458203 }, { 0.000812500880587648, 0.00144676344761019, 0.00257967557803494, 0.00460266167723845, 0.00820300756307308, 0.0145988765042688, 0.0259634144162871, 0.0461676382273997, 0.0820948762763604, 0.145983496798054, 0.25959535680947, 0.461628860634402, 0.820901694608724, 1.45979305329023, 2.59592308285168, 4.61628028654171, 8.20904748725358, 14.5980123045304, 25.9593962261802, 46.1631777388965, 82.0915112410179, 145.982970087228, 259.601122276548, 461.653358910947, 821.00687669616 } }, { { 0.00130245720857286, 0.00232323544699329, 0.00412685176970502, 0.00732683853188025, 0.0130143018006094, 0.0231266956139838, 0.0411099219495935, 0.0730883231686435, 0.12995299120323, 0.231071281981909, 0.410888505746771, 0.730672458780201, 1.29935715988741, 2.31064493849877, 4.10903582111067, 7.30719669769797, 12.9946116371336, 23.1091025113336, 41.0980774627243, 73.0929219072924, 130.005118170683, 231.30434375915, 411.886489615304, 734.771942232015, 1316.03697453819 }, { 0.00110754972481025, 0.00199146515235327, 0.00355938463067007, 0.00633495333201295, 0.0112583790037441, 0.0200080540416795, 0.0355654696169237, 0.0632312211338096, 0.112428713709063, 0.199914562968826, 0.355487066184829, 0.632141290690268, 1.12412616781628, 1.99902493007201, 3.55484567600264, 6.32156990015599, 11.2416775910272, 19.9911501223755, 35.5507918694638, 63.2224376611442, 112.434643840389, 199.961803545595, 355.693458218736, 633.030948491561, 1127.80640720931 }, { 0.000776753585136592, 0.00139015778779358, 0.00249075523590984, 0.00445056850050741, 0.00792721539068765, 0.0140975796912656, 0.0250630640014663, 0.044560392605236, 0.0792320283968894, 0.140888119428792, 0.250529523106048, 0.445502036487127, 0.792221283775891, 1.40879459925735, 2.50523834346063, 4.45502641141916, 7.92232293855287, 14.0881992552205, 25.0529239592546, 44.5516694630436, 79.2272437699302, 140.892406941762, 250.557957989082, 445.623135552321, 792.753469548192 }, { 0.000521838209081356, 0.000929055963265908, 0.00165657447924405, 0.00295796019354529, 0.00527824680364425, 0.00940092862106495, 0.0167230234128872, 0.0297369023636694, 0.0528766517792498, 0.0940252091498338, 0.167198938295901, 0.297322189483614, 0.528717856725676, 0.940206812393745, 1.67195296295244, 2.97320264982672, 5.28719152613345, 9.40212579456367, 16.7196501700023, 29.7322797514877, 52.8725662126267, 94.0231057498009, 167.201245756087, 297.33549161132, 528.772595401457 } }, { { 0.000923055541909319, 0.00165077459636833, 0.00293367253431117, 0.00520606111612515, 0.00924340128330027, 0.0164208782994923, 0.0291846817178845, 0.0518820617405113, 0.0922425261407642, 0.164012196023683, 0.291636745941843, 0.51860217861082, 0.922231922649872, 1.64000580144708, 2.91642583502771, 5.18633996326589, 9.22302980784811, 16.4017054271371, 29.1688811965597, 51.8764695654642, 92.2647143409074, 164.124867996895, 292.124376808079, 520.662322696007, 930.64051594378 }, { 0.000633737543784174, 0.00114623188199463, 0.00205869566135922, 0.00367182602126859, 0.00652673124859232, 0.0115952089112509, 0.020605255686624, 0.0366270901134731, 0.0651189281502719, 0.115784651583894, 0.205881011941247, 0.36609670847499, 0.651015512136471, 1.15769719709179, 2.05872353883923, 3.66101388233638, 6.51039704919134, 11.5775002356133, 20.588429189302, 36.6134292178032, 65.1132552534121, 115.799005878866, 205.956412849985, 366.422395476435, 652.420682640868 }, { 0.000325230639840705, 0.000582051037390778, 0.00104643546237581, 0.00188082880827093, 0.00336363114538857, 0.00599002418612332, 0.0106494124471435, 0.0189297910494027, 0.033653137949614, 0.0598356224674337, 0.10639543570037, 0.18919129437469, 0.336425420595521, 0.598254746535688, 1.06386921083693, 1.8918636684182, 3.36427531832071, 5.98266602183676, 10.6389461415648, 18.9191831636258, 33.6441890206713, 59.830745202897, 106.399948809109, 189.220674006036, 336.550319692968 }, { 0.000132798423824335, 0.000236319184151896, 0.000421090779384179, 0.000752445153015364, 0.00134861297601947, 0.00241539165348843, 0.00431025821044712, 0.00767106097791332, 0.0136401619410742, 0.0242519288282361, 0.0431220805979258, 0.0766785934678925, 0.136351387135559, 0.242466374519547, 0.431170887434176, 0.766744110666965, 1.36348773390977, 2.42466580006013, 4.3117468946036, 7.66752347407041, 13.6350444110798, 24.2470508613396, 43.1185735174852, 76.6782171236973, 136.357978062936 } }, { { 0.000356030744871088, 0.000645612579933203, 0.00115296836906986, 0.00204394740392933, 0.00362155606897496, 0.00642409196700602, 0.0114063117469409, 0.0202666463656752, 0.0360217800284102, 0.064036878174136, 0.113852426571665, 0.202438673744553, 0.359986604978793, 0.640167740680201, 1.13840865925134, 2.02442762566447, 3.60007202278985, 6.40211399632731, 11.3850382779953, 20.2467108988982, 36.0077283559593, 64.0395832736535, 113.898658171621, 202.634737425629, 360.843030906367 }, { 7.88608907563284e-05, 0.000145118720177594, 0.000270372298041473, 0.000497840993811508, 0.000897749633786736, 0.00159682014698759, 0.00282888992550956, 0.00501513758592751, 0.00890115523669903, 0.0158120175432414, 0.0281013017334123, 0.0499538986426092, 0.0888119007862429, 0.15791466735095, 0.280813104216676, 0.499369179340032, 0.888018654582991, 1.57914548420252, 2.80817541794882, 4.99376443078358, 8.88036674289362, 15.7918729906639, 28.0828677826839, 49.9408983149941, 88.8126120207599 }, { 2.29945779369204e-06, 4.08822495158886e-06, 7.26521357760116e-06, 1.28927504187773e-05, 2.27781753172623e-05, 3.97057430164692e-05, 6.6665619621365e-05, 0.000103071594288035, 0.000144331895969375, 0.000201439787129679, 0.000307634931336189, 0.000506314786555939, 0.000865931518137, 0.00150795420141149, 0.00265001685643008, 0.00468143675539185, 0.00829635961538273, 0.0147301543219747, 0.0225553857404954, 0.0423799264645994, 0.0673570520052403, 0.100986119107252, 0.15632585800345, 0.259449421199451, 0.449520190724668 }, { 0.000123191525676806, 0.000218953570585993, 0.000388755085194338, 0.000688529550018876, 0.00121501118359836, 0.00214202329422083, 0.00378910158808052, 0.00672615201324514, 0.0119581336548485, 0.0212665854197438, 0.0378208247739864, 0.067258891921757, 0.119607990625656, 0.21269961705164, 0.378241536546698, 0.672616514241954, 1.196094874033, 2.12698032352843, 3.78233365672263, 6.72598243066111, 11.9605381252829, 21.2686704574936, 37.8201925829416, 67.2516894044118, 119.580071953408 } }, { { 2.07029769620561e-05, 3.64492331319499e-05, 6.28618421766526e-05, 0.00010237767144727, 0.000147065293859476, 0.000180820815928371, 0.000216934692442845, 0.000294877077965388, 0.000448508809750805, 0.000724898473610867, 0.00121738492563848, 0.00208604701734763, 0.00362860338877957, 0.00637735306900938, 0.0113130403139535, 0.0199088464027016, 0.0255064830934324, 0.0329379987991721, 0.0590197991085236, 0.10396979519664, 0.183968976931358, 0.326552761252249, 0.580352049973215, 1.03182852056392, 1.83476668564811 }, { 0.000525238581236205, 0.000915149130748089, 0.00159805400453635, 0.00281590533858316, 0.00499559061542112, 0.00888563665838694, 0.0158098115163905, 0.0281250721480108, 0.0500247465250152, 0.088968149182502, 0.158221123887496, 0.281374473883362, 0.500371469148541, 0.889785485037691, 1.58224926601217, 2.81358358595647, 5.00308302934444, 8.8962048399363, 15.8177221550362, 28.1218410265821, 49.9874896257718, 88.801056533546, 157.524534421966, 278.537561669632, 489.277217815608 }, { 0.00165394200808978, 0.00292576279332824, 0.00517867047635541, 0.00918821699296096, 0.0163303806488757, 0.0290418507112142, 0.0516510131363175, 0.0918574943079752, 0.163355531676501, 0.290499044183944, 0.516596322260313, 0.918660079158805, 1.63363325654463, 2.90504637849055, 5.16596734063921, 9.18648499323804, 16.3360214527504, 29.0497667830533, 51.6577801088621, 91.8594598275051, 163.345879922131, 290.453228691875, 516.401669156582, 917.838545745194, 1630.28608219381 }, { 0.00317246441846462, 0.00563336503592541, 0.010000834709538, 0.0177654607280541, 0.0315805621221581, 0.0561566981718701, 0.0998646257137779, 0.177590835923613, 0.315809764016386, 0.561601616590945, 0.998688376657527, 1.77594979401987, 3.15813349679225, 5.61603984521499, 9.98688206554518, 17.7594476607015, 31.5812150754337, 56.160150091571, 99.8681995331305, 177.592708345368, 315.807533143576, 561.589251247019, 998.638630199774, 1775.73000746203, 3157.1772957575 } }, { { 0.0023627309280083, 0.00419155398312066, 0.00745634884074716, 0.0132691736714998, 0.0236088703594421, 0.0419966810797421, 0.0746946125902893, 0.132841395441462, 0.236244291327235, 0.420127038895106, 0.747115172214854, 1.32855880240269, 2.36249323386902, 4.20102680397358, 7.4702088237528, 13.2829996606601, 23.6172223719507, 41.9869776067771, 74.6242243264216, 132.528060792644, 234.945499938709, 414.900249577244, 728.21227434732, 1274.53197097561, 2241.3868405444 }, { 0.00747283044221112, 0.0132726842514676, 0.0236010788854886, 0.0419775349345468, 0.0746596541633286, 0.132778351011753, 0.236129014324975, 0.419915813636925, 0.74674138461371, 1.32792983047791, 2.36143359486376, 4.19927169159105, 7.46744661292602, 13.2791218838139, 23.6137737133018, 41.9913788598459, 74.6707233032337, 132.780443424568, 236.107377584224, 419.8108932945, 746.29259070533, 1326.08099383379, 2353.94069710865, 4170.44773033101, 7375.84479330986 }, { 0.0141280405820965, 0.0251027112319031, 0.0446302623284539, 0.0793667489770701, 0.141142932179463, 0.250999520976685, 0.446354940030856, 0.79375144814553, 1.41152003281855, 2.5100850743631, 4.46363323330752, 7.9375784567502, 14.1152190884686, 25.1007672309021, 44.6360829975689, 79.375243856119, 141.150801795042, 251.003677861577, 446.350220709561, 793.722270698892, 1411.39605627914, 2509.55281587586, 4461.43850546179, 7928.6341317643, 14080.2910022602 }, { 0.0215387288647882, 0.0382826856086231, 0.0680630998881555, 0.121030449764231, 0.215227389481788, 0.382737981981394, 0.68061885077701, 1.21033419130372, 2.15231619634837, 3.82742311829893, 6.80622788455026, 12.1033714616865, 21.5231718784815, 38.2742013524481, 68.062189729843, 121.033532059493, 215.231300627444, 382.740849140719, 680.61871582245, 1210.32725350302, 2152.28800273986, 3827.30225639081, 6805.68706447303, 12101.1040390128, 21513.8617608925 } } }
            );
        }

        public double Update(double r, double x, double v)
        {
            if (!IsFinite(_ei) || !IsFinite(_uDiff) || !IsFinite(_uSat))
                Reset();

            double e = r - x;

            var ytrue = new V3(x, v, 0);

            if (!IsFinite(X̂))
                X̂ = ytrue;

            _ei += e + Kb * _uDiff;

            var A = new M3(1.0, Ts, 0, 0, 1.0, Ts / M, 0, 0, 1.0 - Alpha);
            var B = new V3(0, 0, Alpha);
            var C = new M3(1.0, 0, 0, 0, 1.0, 0, 0, 0, 0);

            V3 X̂pred = A * X̂ + B * _uSat;
            V3 ypred  = C * X̂pred;
            X̂ = X̂pred + L * (ytrue - ypred);

            double u = -V3.Dot(Kstate, X̂) - Kint * _ei;
            _uSat = Clamp(u, UMin, UMax);

            _uDiff = _uSat - u;

            return _uSat;
        }

        public void Reset()
        {
            _ei    = 0;
            _uDiff = 0;
            _uSat  = 0;
            X̂     = V3.nan;
        }
    }
}
